/*!
 * @license CreateJS
 * Visit http://createjs.com/ for documentation, updates and examples.
 *
 * Copyright (c) 2011-2015 gskinner.com, inc.
 *
 * Distributed under the terms of the MIT license.
 * http://www.opensource.org/licenses/mit-license.html
 *
 * This notice shall be included in all copies or substantial portions of the Software.
 */
(this.createjs = this.createjs || {}),
  (createjs.extend = function (a, b) {
    "use strict";
    function c() {
      this.constructor = a;
    }
    return (c.prototype = b.prototype), (a.prototype = new c());
  }),
  (this.createjs = this.createjs || {}),
  (createjs.promote = function (a, b) {
    "use strict";
    var c = a.prototype,
      d = (Object.getPrototypeOf && Object.getPrototypeOf(c)) || c.__proto__;
    if (d) {
      c[(b += "_") + "constructor"] = d.constructor;
      for (var e in d)
        c.hasOwnProperty(e) && "function" == typeof d[e] && (c[b + e] = d[e]);
    }
    return a;
  }),
  (this.createjs = this.createjs || {}),
  (createjs.indexOf = function (a, b) {
    "use strict";
    for (var c = 0, d = a.length; d > c; c++) if (b === a[c]) return c;
    return -1;
  }),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      (this.type = a),
        (this.target = null),
        (this.currentTarget = null),
        (this.eventPhase = 0),
        (this.bubbles = !!b),
        (this.cancelable = !!c),
        (this.timeStamp = new Date().getTime()),
        (this.defaultPrevented = !1),
        (this.propagationStopped = !1),
        (this.immediatePropagationStopped = !1),
        (this.removed = !1);
    }
    var b = a.prototype;
    (b.preventDefault = function () {
      this.defaultPrevented = this.cancelable && !0;
    }),
      (b.stopPropagation = function () {
        this.propagationStopped = !0;
      }),
      (b.stopImmediatePropagation = function () {
        this.immediatePropagationStopped = this.propagationStopped = !0;
      }),
      (b.remove = function () {
        this.removed = !0;
      }),
      (b.clone = function () {
        return new a(this.type, this.bubbles, this.cancelable);
      }),
      (b.set = function (a) {
        for (var b in a) this[b] = a[b];
        return this;
      }),
      (b.toString = function () {
        return "[Event (type=" + this.type + ")]";
      }),
      (createjs.Event = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      (this._listeners = null), (this._captureListeners = null);
    }
    var b = a.prototype;
    (a.initialize = function (a) {
      (a.addEventListener = b.addEventListener),
        (a.on = b.on),
        (a.removeEventListener = a.off = b.removeEventListener),
        (a.removeAllEventListeners = b.removeAllEventListeners),
        (a.hasEventListener = b.hasEventListener),
        (a.dispatchEvent = b.dispatchEvent),
        (a._dispatchEvent = b._dispatchEvent),
        (a.willTrigger = b.willTrigger);
    }),
      (b.addEventListener = function (a, b, c) {
        var d;
        d = c
          ? (this._captureListeners = this._captureListeners || {})
          : (this._listeners = this._listeners || {});
        var e = d[a];
        return (
          e && this.removeEventListener(a, b, c),
          (e = d[a]),
          e ? e.push(b) : (d[a] = [b]),
          b
        );
      }),
      (b.on = function (a, b, c, d, e, f) {
        return (
          b.handleEvent && ((c = c || b), (b = b.handleEvent)),
          (c = c || this),
          this.addEventListener(
            a,
            function (a) {
              b.call(c, a, e), d && a.remove();
            },
            f
          )
        );
      }),
      (b.removeEventListener = function (a, b, c) {
        var d = c ? this._captureListeners : this._listeners;
        if (d) {
          var e = d[a];
          if (e)
            for (var f = 0, g = e.length; g > f; f++)
              if (e[f] == b) {
                1 == g ? delete d[a] : e.splice(f, 1);
                break;
              }
        }
      }),
      (b.off = b.removeEventListener),
      (b.removeAllEventListeners = function (a) {
        a
          ? (this._listeners && delete this._listeners[a],
            this._captureListeners && delete this._captureListeners[a])
          : (this._listeners = this._captureListeners = null);
      }),
      (b.dispatchEvent = function (a, b, c) {
        if ("string" == typeof a) {
          var d = this._listeners;
          if (!(b || (d && d[a]))) return !0;
          a = new createjs.Event(a, b, c);
        } else a.target && a.clone && (a = a.clone());
        try {
          a.target = this;
        } catch (e) {}
        if (a.bubbles && this.parent) {
          for (var f = this, g = [f]; f.parent; ) g.push((f = f.parent));
          var h,
            i = g.length;
          for (h = i - 1; h >= 0 && !a.propagationStopped; h--)
            g[h]._dispatchEvent(a, 1 + (0 == h));
          for (h = 1; i > h && !a.propagationStopped; h++)
            g[h]._dispatchEvent(a, 3);
        } else this._dispatchEvent(a, 2);
        return !a.defaultPrevented;
      }),
      (b.hasEventListener = function (a) {
        var b = this._listeners,
          c = this._captureListeners;
        return !!((b && b[a]) || (c && c[a]));
      }),
      (b.willTrigger = function (a) {
        for (var b = this; b; ) {
          if (b.hasEventListener(a)) return !0;
          b = b.parent;
        }
        return !1;
      }),
      (b.toString = function () {
        return "[EventDispatcher]";
      }),
      (b._dispatchEvent = function (a, b) {
        var c,
          d = 1 == b ? this._captureListeners : this._listeners;
        if (a && d) {
          var e = d[a.type];
          if (!e || !(c = e.length)) return;
          try {
            a.currentTarget = this;
          } catch (f) {}
          try {
            a.eventPhase = b;
          } catch (f) {}
          (a.removed = !1), (e = e.slice());
          for (var g = 0; c > g && !a.immediatePropagationStopped; g++) {
            var h = e[g];
            h.handleEvent ? h.handleEvent(a) : h(a),
              a.removed && (this.off(a.type, h, 1 == b), (a.removed = !1));
          }
        }
      }),
      (createjs.EventDispatcher = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      throw "Ticker cannot be instantiated.";
    }
    (a.RAF_SYNCHED = "synched"),
      (a.RAF = "raf"),
      (a.TIMEOUT = "timeout"),
      (a.useRAF = !1),
      (a.timingMode = null),
      (a.maxDelta = 0),
      (a.paused = !1),
      (a.removeEventListener = null),
      (a.removeAllEventListeners = null),
      (a.dispatchEvent = null),
      (a.hasEventListener = null),
      (a._listeners = null),
      createjs.EventDispatcher.initialize(a),
      (a._addEventListener = a.addEventListener),
      (a.addEventListener = function () {
        return !a._inited && a.init(), a._addEventListener.apply(a, arguments);
      }),
      (a._inited = !1),
      (a._startTime = 0),
      (a._pausedTime = 0),
      (a._ticks = 0),
      (a._pausedTicks = 0),
      (a._interval = 50),
      (a._lastTime = 0),
      (a._times = null),
      (a._tickTimes = null),
      (a._timerId = null),
      (a._raf = !0),
      (a.setInterval = function (b) {
        (a._interval = b), a._inited && a._setupTick();
      }),
      (a.getInterval = function () {
        return a._interval;
      }),
      (a.setFPS = function (b) {
        a.setInterval(1e3 / b);
      }),
      (a.getFPS = function () {
        return 1e3 / a._interval;
      });
    try {
      Object.defineProperties(a, {
        interval: { get: a.getInterval, set: a.setInterval },
        framerate: { get: a.getFPS, set: a.setFPS },
      });
    } catch (b) {
      console.log(b);
    }
    (a.init = function () {
      a._inited ||
        ((a._inited = !0),
        (a._times = []),
        (a._tickTimes = []),
        (a._startTime = a._getTime()),
        a._times.push((a._lastTime = 0)),
        (a.interval = a._interval));
    }),
      (a.reset = function () {
        if (a._raf) {
          var b =
            window.cancelAnimationFrame ||
            window.webkitCancelAnimationFrame ||
            window.mozCancelAnimationFrame ||
            window.oCancelAnimationFrame ||
            window.msCancelAnimationFrame;
          b && b(a._timerId);
        } else clearTimeout(a._timerId);
        a.removeAllEventListeners("tick"),
          (a._timerId = a._times = a._tickTimes = null),
          (a._startTime = a._lastTime = a._ticks = 0),
          (a._inited = !1);
      }),
      (a.getMeasuredTickTime = function (b) {
        var c = 0,
          d = a._tickTimes;
        if (!d || d.length < 1) return -1;
        b = Math.min(d.length, b || 0 | a.getFPS());
        for (var e = 0; b > e; e++) c += d[e];
        return c / b;
      }),
      (a.getMeasuredFPS = function (b) {
        var c = a._times;
        return !c || c.length < 2
          ? -1
          : ((b = Math.min(c.length - 1, b || 0 | a.getFPS())),
            1e3 / ((c[0] - c[b]) / b));
      }),
      (a.setPaused = function (b) {
        a.paused = b;
      }),
      (a.getPaused = function () {
        return a.paused;
      }),
      (a.getTime = function (b) {
        return a._startTime ? a._getTime() - (b ? a._pausedTime : 0) : -1;
      }),
      (a.getEventTime = function (b) {
        return a._startTime
          ? (a._lastTime || a._startTime) - (b ? a._pausedTime : 0)
          : -1;
      }),
      (a.getTicks = function (b) {
        return a._ticks - (b ? a._pausedTicks : 0);
      }),
      (a._handleSynch = function () {
        (a._timerId = null),
          a._setupTick(),
          a._getTime() - a._lastTime >= 0.97 * (a._interval - 1) && a._tick();
      }),
      (a._handleRAF = function () {
        (a._timerId = null), a._setupTick(), a._tick();
      }),
      (a._handleTimeout = function () {
        (a._timerId = null), a._setupTick(), a._tick();
      }),
      (a._setupTick = function () {
        if (null == a._timerId) {
          var b = a.timingMode || (a.useRAF && a.RAF_SYNCHED);
          if (b == a.RAF_SYNCHED || b == a.RAF) {
            var c =
              window.requestAnimationFrame ||
              window.webkitRequestAnimationFrame ||
              window.mozRequestAnimationFrame ||
              window.oRequestAnimationFrame ||
              window.msRequestAnimationFrame;
            if (c)
              return (
                (a._timerId = c(b == a.RAF ? a._handleRAF : a._handleSynch)),
                void (a._raf = !0)
              );
          }
          (a._raf = !1),
            (a._timerId = setTimeout(a._handleTimeout, a._interval));
        }
      }),
      (a._tick = function () {
        var b = a.paused,
          c = a._getTime(),
          d = c - a._lastTime;
        if (
          ((a._lastTime = c),
          a._ticks++,
          b && (a._pausedTicks++, (a._pausedTime += d)),
          a.hasEventListener("tick"))
        ) {
          var e = new createjs.Event("tick"),
            f = a.maxDelta;
          (e.delta = f && d > f ? f : d),
            (e.paused = b),
            (e.time = c),
            (e.runTime = c - a._pausedTime),
            a.dispatchEvent(e);
        }
        for (
          a._tickTimes.unshift(a._getTime() - c);
          a._tickTimes.length > 100;

        )
          a._tickTimes.pop();
        for (a._times.unshift(c); a._times.length > 100; ) a._times.pop();
      });
    var c =
      window.performance &&
      (performance.now ||
        performance.mozNow ||
        performance.msNow ||
        performance.oNow ||
        performance.webkitNow);
    (a._getTime = function () {
      return (
        ((c && c.call(performance)) || new Date().getTime()) - a._startTime
      );
    }),
      (createjs.Ticker = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      throw "UID cannot be instantiated";
    }
    (a._nextID = 0),
      (a.get = function () {
        return a._nextID++;
      }),
      (createjs.UID = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c, d, e, f, g, h, i, j, k) {
      this.Event_constructor(a, b, c),
        (this.stageX = d),
        (this.stageY = e),
        (this.rawX = null == i ? d : i),
        (this.rawY = null == j ? e : j),
        (this.nativeEvent = f),
        (this.pointerID = g),
        (this.primary = !!h),
        (this.relatedTarget = k);
    }
    var b = createjs.extend(a, createjs.Event);
    (b._get_localX = function () {
      return this.currentTarget.globalToLocal(this.rawX, this.rawY).x;
    }),
      (b._get_localY = function () {
        return this.currentTarget.globalToLocal(this.rawX, this.rawY).y;
      }),
      (b._get_isTouch = function () {
        return -1 !== this.pointerID;
      });
    try {
      Object.defineProperties(b, {
        localX: { get: b._get_localX },
        localY: { get: b._get_localY },
        isTouch: { get: b._get_isTouch },
      });
    } catch (c) {}
    (b.clone = function () {
      return new a(
        this.type,
        this.bubbles,
        this.cancelable,
        this.stageX,
        this.stageY,
        this.nativeEvent,
        this.pointerID,
        this.primary,
        this.rawX,
        this.rawY
      );
    }),
      (b.toString = function () {
        return (
          "[MouseEvent (type=" +
          this.type +
          " stageX=" +
          this.stageX +
          " stageY=" +
          this.stageY +
          ")]"
        );
      }),
      (createjs.MouseEvent = createjs.promote(a, "Event"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c, d, e, f) {
      this.setValues(a, b, c, d, e, f);
    }
    var b = a.prototype;
    (a.DEG_TO_RAD = Math.PI / 180),
      (a.identity = null),
      (b.setValues = function (a, b, c, d, e, f) {
        return (
          (this.a = null == a ? 1 : a),
          (this.b = b || 0),
          (this.c = c || 0),
          (this.d = null == d ? 1 : d),
          (this.tx = e || 0),
          (this.ty = f || 0),
          this
        );
      }),
      (b.append = function (a, b, c, d, e, f) {
        var g = this.a,
          h = this.b,
          i = this.c,
          j = this.d;
        return (
          (1 != a || 0 != b || 0 != c || 1 != d) &&
            ((this.a = g * a + i * b),
            (this.b = h * a + j * b),
            (this.c = g * c + i * d),
            (this.d = h * c + j * d)),
          (this.tx = g * e + i * f + this.tx),
          (this.ty = h * e + j * f + this.ty),
          this
        );
      }),
      (b.prepend = function (a, b, c, d, e, f) {
        var g = this.a,
          h = this.c,
          i = this.tx;
        return (
          (this.a = a * g + c * this.b),
          (this.b = b * g + d * this.b),
          (this.c = a * h + c * this.d),
          (this.d = b * h + d * this.d),
          (this.tx = a * i + c * this.ty + e),
          (this.ty = b * i + d * this.ty + f),
          this
        );
      }),
      (b.appendMatrix = function (a) {
        return this.append(a.a, a.b, a.c, a.d, a.tx, a.ty);
      }),
      (b.prependMatrix = function (a) {
        return this.prepend(a.a, a.b, a.c, a.d, a.tx, a.ty);
      }),
      (b.appendTransform = function (b, c, d, e, f, g, h, i, j) {
        if (f % 360)
          var k = f * a.DEG_TO_RAD,
            l = Math.cos(k),
            m = Math.sin(k);
        else (l = 1), (m = 0);
        return (
          g || h
            ? ((g *= a.DEG_TO_RAD),
              (h *= a.DEG_TO_RAD),
              this.append(
                Math.cos(h),
                Math.sin(h),
                -Math.sin(g),
                Math.cos(g),
                b,
                c
              ),
              this.append(l * d, m * d, -m * e, l * e, 0, 0))
            : this.append(l * d, m * d, -m * e, l * e, b, c),
          (i || j) &&
            ((this.tx -= i * this.a + j * this.c),
            (this.ty -= i * this.b + j * this.d)),
          this
        );
      }),
      (b.prependTransform = function (b, c, d, e, f, g, h, i, j) {
        if (f % 360)
          var k = f * a.DEG_TO_RAD,
            l = Math.cos(k),
            m = Math.sin(k);
        else (l = 1), (m = 0);
        return (
          (i || j) && ((this.tx -= i), (this.ty -= j)),
          g || h
            ? ((g *= a.DEG_TO_RAD),
              (h *= a.DEG_TO_RAD),
              this.prepend(l * d, m * d, -m * e, l * e, 0, 0),
              this.prepend(
                Math.cos(h),
                Math.sin(h),
                -Math.sin(g),
                Math.cos(g),
                b,
                c
              ))
            : this.prepend(l * d, m * d, -m * e, l * e, b, c),
          this
        );
      }),
      (b.rotate = function (b) {
        b *= a.DEG_TO_RAD;
        var c = Math.cos(b),
          d = Math.sin(b),
          e = this.a,
          f = this.b;
        return (
          (this.a = e * c + this.c * d),
          (this.b = f * c + this.d * d),
          (this.c = -e * d + this.c * c),
          (this.d = -f * d + this.d * c),
          this
        );
      }),
      (b.skew = function (b, c) {
        return (
          (b *= a.DEG_TO_RAD),
          (c *= a.DEG_TO_RAD),
          this.append(
            Math.cos(c),
            Math.sin(c),
            -Math.sin(b),
            Math.cos(b),
            0,
            0
          ),
          this
        );
      }),
      (b.scale = function (a, b) {
        return (this.a *= a), (this.b *= a), (this.c *= b), (this.d *= b), this;
      }),
      (b.translate = function (a, b) {
        return (
          (this.tx += this.a * a + this.c * b),
          (this.ty += this.b * a + this.d * b),
          this
        );
      }),
      (b.identity = function () {
        return (
          (this.a = this.d = 1), (this.b = this.c = this.tx = this.ty = 0), this
        );
      }),
      (b.invert = function () {
        var a = this.a,
          b = this.b,
          c = this.c,
          d = this.d,
          e = this.tx,
          f = a * d - b * c;
        return (
          (this.a = d / f),
          (this.b = -b / f),
          (this.c = -c / f),
          (this.d = a / f),
          (this.tx = (c * this.ty - d * e) / f),
          (this.ty = -(a * this.ty - b * e) / f),
          this
        );
      }),
      (b.isIdentity = function () {
        return (
          0 === this.tx &&
          0 === this.ty &&
          1 === this.a &&
          0 === this.b &&
          0 === this.c &&
          1 === this.d
        );
      }),
      (b.equals = function (a) {
        return (
          this.tx === a.tx &&
          this.ty === a.ty &&
          this.a === a.a &&
          this.b === a.b &&
          this.c === a.c &&
          this.d === a.d
        );
      }),
      (b.transformPoint = function (a, b, c) {
        return (
          (c = c || {}),
          (c.x = a * this.a + b * this.c + this.tx),
          (c.y = a * this.b + b * this.d + this.ty),
          c
        );
      }),
      (b.decompose = function (b) {
        null == b && (b = {}),
          (b.x = this.tx),
          (b.y = this.ty),
          (b.scaleX = Math.sqrt(this.a * this.a + this.b * this.b)),
          (b.scaleY = Math.sqrt(this.c * this.c + this.d * this.d));
        var c = Math.atan2(-this.c, this.d),
          d = Math.atan2(this.b, this.a),
          e = Math.abs(1 - c / d);
        return (
          1e-5 > e
            ? ((b.rotation = d / a.DEG_TO_RAD),
              this.a < 0 &&
                this.d >= 0 &&
                (b.rotation += b.rotation <= 0 ? 180 : -180),
              (b.skewX = b.skewY = 0))
            : ((b.skewX = c / a.DEG_TO_RAD), (b.skewY = d / a.DEG_TO_RAD)),
          b
        );
      }),
      (b.copy = function (a) {
        return this.setValues(a.a, a.b, a.c, a.d, a.tx, a.ty);
      }),
      (b.clone = function () {
        return new a(this.a, this.b, this.c, this.d, this.tx, this.ty);
      }),
      (b.toString = function () {
        return (
          "[Matrix2D (a=" +
          this.a +
          " b=" +
          this.b +
          " c=" +
          this.c +
          " d=" +
          this.d +
          " tx=" +
          this.tx +
          " ty=" +
          this.ty +
          ")]"
        );
      }),
      (a.identity = new a()),
      (createjs.Matrix2D = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c, d, e) {
      this.setValues(a, b, c, d, e);
    }
    var b = a.prototype;
    (b.setValues = function (a, b, c, d, e) {
      return (
        (this.visible = null == a ? !0 : !!a),
        (this.alpha = null == b ? 1 : b),
        (this.shadow = c),
        (this.compositeOperation = d),
        (this.matrix =
          e ||
          (this.matrix && this.matrix.identity()) ||
          new createjs.Matrix2D()),
        this
      );
    }),
      (b.append = function (a, b, c, d, e) {
        return (
          (this.alpha *= b),
          (this.shadow = c || this.shadow),
          (this.compositeOperation = d || this.compositeOperation),
          (this.visible = this.visible && a),
          e && this.matrix.appendMatrix(e),
          this
        );
      }),
      (b.prepend = function (a, b, c, d, e) {
        return (
          (this.alpha *= b),
          (this.shadow = this.shadow || c),
          (this.compositeOperation = this.compositeOperation || d),
          (this.visible = this.visible && a),
          e && this.matrix.prependMatrix(e),
          this
        );
      }),
      (b.identity = function () {
        return (
          (this.visible = !0),
          (this.alpha = 1),
          (this.shadow = this.compositeOperation = null),
          this.matrix.identity(),
          this
        );
      }),
      (b.clone = function () {
        return new a(
          this.alpha,
          this.shadow,
          this.compositeOperation,
          this.visible,
          this.matrix.clone()
        );
      }),
      (createjs.DisplayProps = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.setValues(a, b);
    }
    var b = a.prototype;
    (b.setValues = function (a, b) {
      return (this.x = a || 0), (this.y = b || 0), this;
    }),
      (b.copy = function (a) {
        return (this.x = a.x), (this.y = a.y), this;
      }),
      (b.clone = function () {
        return new a(this.x, this.y);
      }),
      (b.toString = function () {
        return "[Point (x=" + this.x + " y=" + this.y + ")]";
      }),
      (createjs.Point = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c, d) {
      this.setValues(a, b, c, d);
    }
    var b = a.prototype;
    (b.setValues = function (a, b, c, d) {
      return (
        (this.x = a || 0),
        (this.y = b || 0),
        (this.width = c || 0),
        (this.height = d || 0),
        this
      );
    }),
      (b.extend = function (a, b, c, d) {
        return (
          (c = c || 0),
          (d = d || 0),
          a + c > this.x + this.width && (this.width = a + c - this.x),
          b + d > this.y + this.height && (this.height = b + d - this.y),
          a < this.x && ((this.width += this.x - a), (this.x = a)),
          b < this.y && ((this.height += this.y - b), (this.y = b)),
          this
        );
      }),
      (b.pad = function (a, b, c, d) {
        return (
          (this.x -= b),
          (this.y -= a),
          (this.width += b + d),
          (this.height += a + c),
          this
        );
      }),
      (b.copy = function (a) {
        return this.setValues(a.x, a.y, a.width, a.height);
      }),
      (b.contains = function (a, b, c, d) {
        return (
          (c = c || 0),
          (d = d || 0),
          a >= this.x &&
            a + c <= this.x + this.width &&
            b >= this.y &&
            b + d <= this.y + this.height
        );
      }),
      (b.union = function (a) {
        return this.clone().extend(a.x, a.y, a.width, a.height);
      }),
      (b.intersection = function (b) {
        var c = b.x,
          d = b.y,
          e = c + b.width,
          f = d + b.height;
        return (
          this.x > c && (c = this.x),
          this.y > d && (d = this.y),
          this.x + this.width < e && (e = this.x + this.width),
          this.y + this.height < f && (f = this.y + this.height),
          c >= e || d >= f ? null : new a(c, d, e - c, f - d)
        );
      }),
      (b.intersects = function (a) {
        return (
          a.x <= this.x + this.width &&
          this.x <= a.x + a.width &&
          a.y <= this.y + this.height &&
          this.y <= a.y + a.height
        );
      }),
      (b.isEmpty = function () {
        return this.width <= 0 || this.height <= 0;
      }),
      (b.clone = function () {
        return new a(this.x, this.y, this.width, this.height);
      }),
      (b.toString = function () {
        return (
          "[Rectangle (x=" +
          this.x +
          " y=" +
          this.y +
          " width=" +
          this.width +
          " height=" +
          this.height +
          ")]"
        );
      }),
      (createjs.Rectangle = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c, d, e, f, g) {
      a.addEventListener &&
        ((this.target = a),
        (this.overLabel = null == c ? "over" : c),
        (this.outLabel = null == b ? "out" : b),
        (this.downLabel = null == d ? "down" : d),
        (this.play = e),
        (this._isPressed = !1),
        (this._isOver = !1),
        (this._enabled = !1),
        (a.mouseChildren = !1),
        (this.enabled = !0),
        this.handleEvent({}),
        f &&
          (g && ((f.actionsEnabled = !1), f.gotoAndStop && f.gotoAndStop(g)),
          (a.hitArea = f)));
    }
    var b = a.prototype;
    (b.setEnabled = function (a) {
      if (a != this._enabled) {
        var b = this.target;
        (this._enabled = a),
          a
            ? ((b.cursor = "pointer"),
              b.addEventListener("rollover", this),
              b.addEventListener("rollout", this),
              b.addEventListener("mousedown", this),
              b.addEventListener("pressup", this),
              b._reset && ((b.__reset = b._reset), (b._reset = this._reset)))
            : ((b.cursor = null),
              b.removeEventListener("rollover", this),
              b.removeEventListener("rollout", this),
              b.removeEventListener("mousedown", this),
              b.removeEventListener("pressup", this),
              b.__reset && ((b._reset = b.__reset), delete b.__reset));
      }
    }),
      (b.getEnabled = function () {
        return this._enabled;
      });
    try {
      Object.defineProperties(b, {
        enabled: { get: b.getEnabled, set: b.setEnabled },
      });
    } catch (c) {}
    (b.toString = function () {
      return "[ButtonHelper]";
    }),
      (b.handleEvent = function (a) {
        var b,
          c = this.target,
          d = a.type;
        "mousedown" == d
          ? ((this._isPressed = !0), (b = this.downLabel))
          : "pressup" == d
          ? ((this._isPressed = !1),
            (b = this._isOver ? this.overLabel : this.outLabel))
          : "rollover" == d
          ? ((this._isOver = !0),
            (b = this._isPressed ? this.downLabel : this.overLabel))
          : ((this._isOver = !1),
            (b = this._isPressed ? this.overLabel : this.outLabel)),
          this.play
            ? c.gotoAndPlay && c.gotoAndPlay(b)
            : c.gotoAndStop && c.gotoAndStop(b);
      }),
      (b._reset = function () {
        var a = this.paused;
        this.__reset(), (this.paused = a);
      }),
      (createjs.ButtonHelper = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c, d) {
      (this.color = a || "black"),
        (this.offsetX = b || 0),
        (this.offsetY = c || 0),
        (this.blur = d || 0);
    }
    var b = a.prototype;
    (a.identity = new a("transparent", 0, 0, 0)),
      (b.toString = function () {
        return "[Shadow]";
      }),
      (b.clone = function () {
        return new a(this.color, this.offsetX, this.offsetY, this.blur);
      }),
      (createjs.Shadow = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.EventDispatcher_constructor(),
        (this.complete = !0),
        (this.framerate = 0),
        (this._animations = null),
        (this._frames = null),
        (this._images = null),
        (this._data = null),
        (this._loadCount = 0),
        (this._frameHeight = 0),
        (this._frameWidth = 0),
        (this._numFrames = 0),
        (this._regX = 0),
        (this._regY = 0),
        (this._spacing = 0),
        (this._margin = 0),
        this._parseData(a);
    }
    var b = createjs.extend(a, createjs.EventDispatcher);
    b.getAnimations = function () {
      return this._animations.slice();
    };
    try {
      Object.defineProperties(b, { animations: { get: b.getAnimations } });
    } catch (c) {}
    (b.getNumFrames = function (a) {
      if (null == a)
        return this._frames ? this._frames.length : this._numFrames || 0;
      var b = this._data[a];
      return null == b ? 0 : b.frames.length;
    }),
      (b.getAnimation = function (a) {
        return this._data[a];
      }),
      (b.getFrame = function (a) {
        var b;
        return this._frames && (b = this._frames[a]) ? b : null;
      }),
      (b.getFrameBounds = function (a, b) {
        var c = this.getFrame(a);
        return c
          ? (b || new createjs.Rectangle()).setValues(
              -c.regX,
              -c.regY,
              c.rect.width,
              c.rect.height
            )
          : null;
      }),
      (b.toString = function () {
        return "[SpriteSheet]";
      }),
      (b.clone = function () {
        throw "SpriteSheet cannot be cloned.";
      }),
      (b._parseData = function (a) {
        var b, c, d, e;
        if (null != a) {
          if (
            ((this.framerate = a.framerate || 0),
            a.images && (c = a.images.length) > 0)
          )
            for (e = this._images = [], b = 0; c > b; b++) {
              var f = a.images[b];
              if ("string" == typeof f) {
                var g = f;
                (f = document.createElement("img")), (f.src = g);
              }
              e.push(f),
                f.getContext ||
                  f.naturalWidth ||
                  (this._loadCount++,
                  (this.complete = !1),
                  (function (a, b) {
                    f.onload = function () {
                      a._handleImageLoad(b);
                    };
                  })(this, g),
                  (function (a, b) {
                    f.onerror = function () {
                      a._handleImageError(b);
                    };
                  })(this, g));
            }
          if (null == a.frames);
          else if (Array.isArray(a.frames))
            for (
              this._frames = [], e = a.frames, b = 0, c = e.length;
              c > b;
              b++
            ) {
              var h = e[b];
              this._frames.push({
                image: this._images[h[4] ? h[4] : 0],
                rect: new createjs.Rectangle(h[0], h[1], h[2], h[3]),
                regX: h[5] || 0,
                regY: h[6] || 0,
              });
            }
          else
            (d = a.frames),
              (this._frameWidth = d.width),
              (this._frameHeight = d.height),
              (this._regX = d.regX || 0),
              (this._regY = d.regY || 0),
              (this._spacing = d.spacing || 0),
              (this._margin = d.margin || 0),
              (this._numFrames = d.count),
              0 == this._loadCount && this._calculateFrames();
          if (((this._animations = []), null != (d = a.animations))) {
            this._data = {};
            var i;
            for (i in d) {
              var j = { name: i },
                k = d[i];
              if ("number" == typeof k) e = j.frames = [k];
              else if (Array.isArray(k))
                if (1 == k.length) j.frames = [k[0]];
                else
                  for (
                    j.speed = k[3], j.next = k[2], e = j.frames = [], b = k[0];
                    b <= k[1];
                    b++
                  )
                    e.push(b);
              else {
                (j.speed = k.speed), (j.next = k.next);
                var l = k.frames;
                e = j.frames = "number" == typeof l ? [l] : l.slice(0);
              }
              (j.next === !0 || void 0 === j.next) && (j.next = i),
                (j.next === !1 || (e.length < 2 && j.next == i)) &&
                  (j.next = null),
                j.speed || (j.speed = 1),
                this._animations.push(i),
                (this._data[i] = j);
            }
          }
        }
      }),
      (b._handleImageLoad = function (a) {
        0 == --this._loadCount &&
          (this._calculateFrames(),
          (this.complete = !0),
          this.dispatchEvent("complete"));
      }),
      (b._handleImageError = function (a) {
        var b = new createjs.Event("error");
        (b.src = a),
          this.dispatchEvent(b),
          0 == --this._loadCount && this.dispatchEvent("complete");
      }),
      (b._calculateFrames = function () {
        if (!this._frames && 0 != this._frameWidth) {
          this._frames = [];
          var a = this._numFrames || 1e5,
            b = 0,
            c = this._frameWidth,
            d = this._frameHeight,
            e = this._spacing,
            f = this._margin;
          a: for (var g = 0, h = this._images; g < h.length; g++)
            for (
              var i = h[g], j = i.width, k = i.height, l = f;
              k - f - d >= l;

            ) {
              for (var m = f; j - f - c >= m; ) {
                if (b >= a) break a;
                b++,
                  this._frames.push({
                    image: i,
                    rect: new createjs.Rectangle(m, l, c, d),
                    regX: this._regX,
                    regY: this._regY,
                  }),
                  (m += c + e);
              }
              l += d + e;
            }
          this._numFrames = b;
        }
      }),
      (createjs.SpriteSheet = createjs.promote(a, "EventDispatcher"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      (this.command = null),
        (this._stroke = null),
        (this._strokeStyle = null),
        (this._oldStrokeStyle = null),
        (this._strokeDash = null),
        (this._oldStrokeDash = null),
        (this._strokeIgnoreScale = !1),
        (this._fill = null),
        (this._instructions = []),
        (this._commitIndex = 0),
        (this._activeInstructions = []),
        (this._dirty = !1),
        (this._storeIndex = 0),
        this.clear();
    }
    var b = a.prototype,
      c = a;
    (a.getRGB = function (a, b, c, d) {
      return (
        null != a &&
          null == c &&
          ((d = b), (c = 255 & a), (b = (a >> 8) & 255), (a = (a >> 16) & 255)),
        null == d
          ? "rgb(" + a + "," + b + "," + c + ")"
          : "rgba(" + a + "," + b + "," + c + "," + d + ")"
      );
    }),
      (a.getHSL = function (a, b, c, d) {
        return null == d
          ? "hsl(" + (a % 360) + "," + b + "%," + c + "%)"
          : "hsla(" + (a % 360) + "," + b + "%," + c + "%," + d + ")";
      }),
      (a.BASE_64 = {
        A: 0,
        B: 1,
        C: 2,
        D: 3,
        E: 4,
        F: 5,
        G: 6,
        H: 7,
        I: 8,
        J: 9,
        K: 10,
        L: 11,
        M: 12,
        N: 13,
        O: 14,
        P: 15,
        Q: 16,
        R: 17,
        S: 18,
        T: 19,
        U: 20,
        V: 21,
        W: 22,
        X: 23,
        Y: 24,
        Z: 25,
        a: 26,
        b: 27,
        c: 28,
        d: 29,
        e: 30,
        f: 31,
        g: 32,
        h: 33,
        i: 34,
        j: 35,
        k: 36,
        l: 37,
        m: 38,
        n: 39,
        o: 40,
        p: 41,
        q: 42,
        r: 43,
        s: 44,
        t: 45,
        u: 46,
        v: 47,
        w: 48,
        x: 49,
        y: 50,
        z: 51,
        0: 52,
        1: 53,
        2: 54,
        3: 55,
        4: 56,
        5: 57,
        6: 58,
        7: 59,
        8: 60,
        9: 61,
        "+": 62,
        "/": 63,
      }),
      (a.STROKE_CAPS_MAP = ["butt", "round", "square"]),
      (a.STROKE_JOINTS_MAP = ["miter", "round", "bevel"]);
    var d = createjs.createCanvas
      ? createjs.createCanvas()
      : document.createElement("canvas");
    d.getContext && ((a._ctx = d.getContext("2d")), (d.width = d.height = 1)),
      (b.getInstructions = function () {
        return this._updateInstructions(), this._instructions;
      });
    try {
      Object.defineProperties(b, { instructions: { get: b.getInstructions } });
    } catch (e) {}
    (b.isEmpty = function () {
      return !(this._instructions.length || this._activeInstructions.length);
    }),
      (b.draw = function (a, b) {
        this._updateInstructions();
        for (
          var c = this._instructions, d = this._storeIndex, e = c.length;
          e > d;
          d++
        )
          c[d].exec(a, b);
      }),
      (b.drawAsPath = function (a) {
        this._updateInstructions();
        for (
          var b, c = this._instructions, d = this._storeIndex, e = c.length;
          e > d;
          d++
        )
          (b = c[d]).path !== !1 && b.exec(a);
      }),
      (b.moveTo = function (a, b) {
        return this.append(new c.MoveTo(a, b), !0);
      }),
      (b.lineTo = function (a, b) {
        return this.append(new c.LineTo(a, b));
      }),
      (b.arcTo = function (a, b, d, e, f) {
        return this.append(new c.ArcTo(a, b, d, e, f));
      }),
      (b.arc = function (a, b, d, e, f, g) {
        return this.append(new c.Arc(a, b, d, e, f, g));
      }),
      (b.quadraticCurveTo = function (a, b, d, e) {
        return this.append(new c.QuadraticCurveTo(a, b, d, e));
      }),
      (b.bezierCurveTo = function (a, b, d, e, f, g) {
        return this.append(new c.BezierCurveTo(a, b, d, e, f, g));
      }),
      (b.rect = function (a, b, d, e) {
        return this.append(new c.Rect(a, b, d, e));
      }),
      (b.closePath = function () {
        return this._activeInstructions.length
          ? this.append(new c.ClosePath())
          : this;
      }),
      (b.clear = function () {
        return (
          (this._instructions.length =
            this._activeInstructions.length =
            this._commitIndex =
              0),
          (this._strokeStyle =
            this._oldStrokeStyle =
            this._stroke =
            this._fill =
            this._strokeDash =
            this._oldStrokeDash =
              null),
          (this._dirty = this._strokeIgnoreScale = !1),
          this
        );
      }),
      (b.beginFill = function (a) {
        return this._setFill(a ? new c.Fill(a) : null);
      }),
      (b.beginLinearGradientFill = function (a, b, d, e, f, g) {
        return this._setFill(new c.Fill().linearGradient(a, b, d, e, f, g));
      }),
      (b.beginRadialGradientFill = function (a, b, d, e, f, g, h, i) {
        return this._setFill(
          new c.Fill().radialGradient(a, b, d, e, f, g, h, i)
        );
      }),
      (b.beginBitmapFill = function (a, b, d) {
        return this._setFill(new c.Fill(null, d).bitmap(a, b));
      }),
      (b.endFill = function () {
        return this.beginFill();
      }),
      (b.setStrokeStyle = function (a, b, d, e, f) {
        return (
          this._updateInstructions(!0),
          (this._strokeStyle = this.command = new c.StrokeStyle(a, b, d, e, f)),
          this._stroke && (this._stroke.ignoreScale = f),
          (this._strokeIgnoreScale = f),
          this
        );
      }),
      (b.setStrokeDash = function (a, b) {
        return (
          this._updateInstructions(!0),
          (this._strokeDash = this.command = new c.StrokeDash(a, b)),
          this
        );
      }),
      (b.beginStroke = function (a) {
        return this._setStroke(a ? new c.Stroke(a) : null);
      }),
      (b.beginLinearGradientStroke = function (a, b, d, e, f, g) {
        return this._setStroke(new c.Stroke().linearGradient(a, b, d, e, f, g));
      }),
      (b.beginRadialGradientStroke = function (a, b, d, e, f, g, h, i) {
        return this._setStroke(
          new c.Stroke().radialGradient(a, b, d, e, f, g, h, i)
        );
      }),
      (b.beginBitmapStroke = function (a, b) {
        return this._setStroke(new c.Stroke().bitmap(a, b));
      }),
      (b.endStroke = function () {
        return this.beginStroke();
      }),
      (b.curveTo = b.quadraticCurveTo),
      (b.drawRect = b.rect),
      (b.drawRoundRect = function (a, b, c, d, e) {
        return this.drawRoundRectComplex(a, b, c, d, e, e, e, e);
      }),
      (b.drawRoundRectComplex = function (a, b, d, e, f, g, h, i) {
        return this.append(new c.RoundRect(a, b, d, e, f, g, h, i));
      }),
      (b.drawCircle = function (a, b, d) {
        return this.append(new c.Circle(a, b, d));
      }),
      (b.drawEllipse = function (a, b, d, e) {
        return this.append(new c.Ellipse(a, b, d, e));
      }),
      (b.drawPolyStar = function (a, b, d, e, f, g) {
        return this.append(new c.PolyStar(a, b, d, e, f, g));
      }),
      (b.append = function (a, b) {
        return (
          this._activeInstructions.push(a),
          (this.command = a),
          b || (this._dirty = !0),
          this
        );
      }),
      (b.decodePath = function (b) {
        for (
          var c = [
              this.moveTo,
              this.lineTo,
              this.quadraticCurveTo,
              this.bezierCurveTo,
              this.closePath,
            ],
            d = [2, 2, 4, 6, 0],
            e = 0,
            f = b.length,
            g = [],
            h = 0,
            i = 0,
            j = a.BASE_64;
          f > e;

        ) {
          var k = b.charAt(e),
            l = j[k],
            m = l >> 3,
            n = c[m];
          if (!n || 3 & l) throw "bad path data (@" + e + "): " + k;
          var o = d[m];
          m || (h = i = 0), (g.length = 0), e++;
          for (var p = ((l >> 2) & 1) + 2, q = 0; o > q; q++) {
            var r = j[b.charAt(e)],
              s = r >> 5 ? -1 : 1;
            (r = ((31 & r) << 6) | j[b.charAt(e + 1)]),
              3 == p && (r = (r << 6) | j[b.charAt(e + 2)]),
              (r = (s * r) / 10),
              q % 2 ? (h = r += h) : (i = r += i),
              (g[q] = r),
              (e += p);
          }
          n.apply(this, g);
        }
        return this;
      }),
      (b.store = function () {
        return (
          this._updateInstructions(!0),
          (this._storeIndex = this._instructions.length),
          this
        );
      }),
      (b.unstore = function () {
        return (this._storeIndex = 0), this;
      }),
      (b.clone = function () {
        var b = new a();
        return (
          (b.command = this.command),
          (b._stroke = this._stroke),
          (b._strokeStyle = this._strokeStyle),
          (b._strokeDash = this._strokeDash),
          (b._strokeIgnoreScale = this._strokeIgnoreScale),
          (b._fill = this._fill),
          (b._instructions = this._instructions.slice()),
          (b._commitIndex = this._commitIndex),
          (b._activeInstructions = this._activeInstructions.slice()),
          (b._dirty = this._dirty),
          (b._storeIndex = this._storeIndex),
          b
        );
      }),
      (b.toString = function () {
        return "[Graphics]";
      }),
      (b.mt = b.moveTo),
      (b.lt = b.lineTo),
      (b.at = b.arcTo),
      (b.bt = b.bezierCurveTo),
      (b.qt = b.quadraticCurveTo),
      (b.a = b.arc),
      (b.r = b.rect),
      (b.cp = b.closePath),
      (b.c = b.clear),
      (b.f = b.beginFill),
      (b.lf = b.beginLinearGradientFill),
      (b.rf = b.beginRadialGradientFill),
      (b.bf = b.beginBitmapFill),
      (b.ef = b.endFill),
      (b.ss = b.setStrokeStyle),
      (b.sd = b.setStrokeDash),
      (b.s = b.beginStroke),
      (b.ls = b.beginLinearGradientStroke),
      (b.rs = b.beginRadialGradientStroke),
      (b.bs = b.beginBitmapStroke),
      (b.es = b.endStroke),
      (b.dr = b.drawRect),
      (b.rr = b.drawRoundRect),
      (b.rc = b.drawRoundRectComplex),
      (b.dc = b.drawCircle),
      (b.de = b.drawEllipse),
      (b.dp = b.drawPolyStar),
      (b.p = b.decodePath),
      (b._updateInstructions = function (b) {
        var c = this._instructions,
          d = this._activeInstructions,
          e = this._commitIndex;
        if (this._dirty && d.length) {
          (c.length = e), c.push(a.beginCmd);
          var f = d.length,
            g = c.length;
          c.length = g + f;
          for (var h = 0; f > h; h++) c[h + g] = d[h];
          this._fill && c.push(this._fill),
            this._stroke &&
              (this._strokeDash !== this._oldStrokeDash &&
                ((this._oldStrokeDash = this._strokeDash),
                c.push(this._strokeDash)),
              this._strokeStyle !== this._oldStrokeStyle &&
                ((this._oldStrokeStyle = this._strokeStyle),
                c.push(this._strokeStyle)),
              c.push(this._stroke)),
            (this._dirty = !1);
        }
        b && ((d.length = 0), (this._commitIndex = c.length));
      }),
      (b._setFill = function (a) {
        return (
          this._updateInstructions(!0), (this.command = this._fill = a), this
        );
      }),
      (b._setStroke = function (a) {
        return (
          this._updateInstructions(!0),
          (this.command = this._stroke = a) &&
            (a.ignoreScale = this._strokeIgnoreScale),
          this
        );
      }),
      ((c.LineTo = function (a, b) {
        (this.x = a), (this.y = b);
      }).prototype.exec = function (a) {
        a.lineTo(this.x, this.y);
      }),
      ((c.MoveTo = function (a, b) {
        (this.x = a), (this.y = b);
      }).prototype.exec = function (a) {
        a.moveTo(this.x, this.y);
      }),
      ((c.ArcTo = function (a, b, c, d, e) {
        (this.x1 = a),
          (this.y1 = b),
          (this.x2 = c),
          (this.y2 = d),
          (this.radius = e);
      }).prototype.exec = function (a) {
        a.arcTo(this.x1, this.y1, this.x2, this.y2, this.radius);
      }),
      ((c.Arc = function (a, b, c, d, e, f) {
        (this.x = a),
          (this.y = b),
          (this.radius = c),
          (this.startAngle = d),
          (this.endAngle = e),
          (this.anticlockwise = !!f);
      }).prototype.exec = function (a) {
        a.arc(
          this.x,
          this.y,
          this.radius,
          this.startAngle,
          this.endAngle,
          this.anticlockwise
        );
      }),
      ((c.QuadraticCurveTo = function (a, b, c, d) {
        (this.cpx = a), (this.cpy = b), (this.x = c), (this.y = d);
      }).prototype.exec = function (a) {
        a.quadraticCurveTo(this.cpx, this.cpy, this.x, this.y);
      }),
      ((c.BezierCurveTo = function (a, b, c, d, e, f) {
        (this.cp1x = a),
          (this.cp1y = b),
          (this.cp2x = c),
          (this.cp2y = d),
          (this.x = e),
          (this.y = f);
      }).prototype.exec = function (a) {
        a.bezierCurveTo(
          this.cp1x,
          this.cp1y,
          this.cp2x,
          this.cp2y,
          this.x,
          this.y
        );
      }),
      ((c.Rect = function (a, b, c, d) {
        (this.x = a), (this.y = b), (this.w = c), (this.h = d);
      }).prototype.exec = function (a) {
        a.rect(this.x, this.y, this.w, this.h);
      }),
      ((c.ClosePath = function () {}).prototype.exec = function (a) {
        a.closePath();
      }),
      ((c.BeginPath = function () {}).prototype.exec = function (a) {
        a.beginPath();
      }),
      (b = (c.Fill = function (a, b) {
        (this.style = a), (this.matrix = b);
      }).prototype),
      (b.exec = function (a) {
        if (this.style) {
          a.fillStyle = this.style;
          var b = this.matrix;
          b && (a.save(), a.transform(b.a, b.b, b.c, b.d, b.tx, b.ty)),
            a.fill(),
            b && a.restore();
        }
      }),
      (b.linearGradient = function (b, c, d, e, f, g) {
        for (
          var h = (this.style = a._ctx.createLinearGradient(d, e, f, g)),
            i = 0,
            j = b.length;
          j > i;
          i++
        )
          h.addColorStop(c[i], b[i]);
        return (
          (h.props = {
            colors: b,
            ratios: c,
            x0: d,
            y0: e,
            x1: f,
            y1: g,
            type: "linear",
          }),
          this
        );
      }),
      (b.radialGradient = function (b, c, d, e, f, g, h, i) {
        for (
          var j = (this.style = a._ctx.createRadialGradient(d, e, f, g, h, i)),
            k = 0,
            l = b.length;
          l > k;
          k++
        )
          j.addColorStop(c[k], b[k]);
        return (
          (j.props = {
            colors: b,
            ratios: c,
            x0: d,
            y0: e,
            r0: f,
            x1: g,
            y1: h,
            r1: i,
            type: "radial",
          }),
          this
        );
      }),
      (b.bitmap = function (b, c) {
        if (b.naturalWidth || b.getContext || b.readyState >= 2) {
          var d = (this.style = a._ctx.createPattern(b, c || ""));
          d.props = { image: b, repetition: c, type: "bitmap" };
        }
        return this;
      }),
      (b.path = !1),
      (b = (c.Stroke = function (a, b) {
        (this.style = a), (this.ignoreScale = b);
      }).prototype),
      (b.exec = function (a) {
        this.style &&
          ((a.strokeStyle = this.style),
          this.ignoreScale && (a.save(), a.setTransform(1, 0, 0, 1, 0, 0)),
          a.stroke(),
          this.ignoreScale && a.restore());
      }),
      (b.linearGradient = c.Fill.prototype.linearGradient),
      (b.radialGradient = c.Fill.prototype.radialGradient),
      (b.bitmap = c.Fill.prototype.bitmap),
      (b.path = !1),
      (b = (c.StrokeStyle = function (a, b, c, d, e) {
        (this.width = a),
          (this.caps = b),
          (this.joints = c),
          (this.miterLimit = d),
          (this.ignoreScale = e);
      }).prototype),
      (b.exec = function (b) {
        (b.lineWidth = null == this.width ? "1" : this.width),
          (b.lineCap =
            null == this.caps
              ? "butt"
              : isNaN(this.caps)
              ? this.caps
              : a.STROKE_CAPS_MAP[this.caps]),
          (b.lineJoin =
            null == this.joints
              ? "miter"
              : isNaN(this.joints)
              ? this.joints
              : a.STROKE_JOINTS_MAP[this.joints]),
          (b.miterLimit = null == this.miterLimit ? "10" : this.miterLimit),
          (b.ignoreScale = null == this.ignoreScale ? !1 : this.ignoreScale);
      }),
      (b.path = !1),
      ((c.StrokeDash = function (a, b) {
        (this.segments = a), (this.offset = b || 0);
      }).prototype.exec = function (a) {
        a.setLineDash &&
          (a.setLineDash(this.segments || c.StrokeDash.EMPTY_SEGMENTS),
          (a.lineDashOffset = this.offset || 0));
      }),
      (c.StrokeDash.EMPTY_SEGMENTS = []),
      ((c.RoundRect = function (a, b, c, d, e, f, g, h) {
        (this.x = a),
          (this.y = b),
          (this.w = c),
          (this.h = d),
          (this.radiusTL = e),
          (this.radiusTR = f),
          (this.radiusBR = g),
          (this.radiusBL = h);
      }).prototype.exec = function (a) {
        var b = (j > i ? i : j) / 2,
          c = 0,
          d = 0,
          e = 0,
          f = 0,
          g = this.x,
          h = this.y,
          i = this.w,
          j = this.h,
          k = this.radiusTL,
          l = this.radiusTR,
          m = this.radiusBR,
          n = this.radiusBL;
        0 > k && (k *= c = -1),
          k > b && (k = b),
          0 > l && (l *= d = -1),
          l > b && (l = b),
          0 > m && (m *= e = -1),
          m > b && (m = b),
          0 > n && (n *= f = -1),
          n > b && (n = b),
          a.moveTo(g + i - l, h),
          a.arcTo(g + i + l * d, h - l * d, g + i, h + l, l),
          a.lineTo(g + i, h + j - m),
          a.arcTo(g + i + m * e, h + j + m * e, g + i - m, h + j, m),
          a.lineTo(g + n, h + j),
          a.arcTo(g - n * f, h + j + n * f, g, h + j - n, n),
          a.lineTo(g, h + k),
          a.arcTo(g - k * c, h - k * c, g + k, h, k),
          a.closePath();
      }),
      ((c.Circle = function (a, b, c) {
        (this.x = a), (this.y = b), (this.radius = c);
      }).prototype.exec = function (a) {
        a.arc(this.x, this.y, this.radius, 0, 2 * Math.PI);
      }),
      ((c.Ellipse = function (a, b, c, d) {
        (this.x = a), (this.y = b), (this.w = c), (this.h = d);
      }).prototype.exec = function (a) {
        var b = this.x,
          c = this.y,
          d = this.w,
          e = this.h,
          f = 0.5522848,
          g = (d / 2) * f,
          h = (e / 2) * f,
          i = b + d,
          j = c + e,
          k = b + d / 2,
          l = c + e / 2;
        a.moveTo(b, l),
          a.bezierCurveTo(b, l - h, k - g, c, k, c),
          a.bezierCurveTo(k + g, c, i, l - h, i, l),
          a.bezierCurveTo(i, l + h, k + g, j, k, j),
          a.bezierCurveTo(k - g, j, b, l + h, b, l);
      }),
      ((c.PolyStar = function (a, b, c, d, e, f) {
        (this.x = a),
          (this.y = b),
          (this.radius = c),
          (this.sides = d),
          (this.pointSize = e),
          (this.angle = f);
      }).prototype.exec = function (a) {
        var b = this.x,
          c = this.y,
          d = this.radius,
          e = ((this.angle || 0) / 180) * Math.PI,
          f = this.sides,
          g = 1 - (this.pointSize || 0),
          h = Math.PI / f;
        a.moveTo(b + Math.cos(e) * d, c + Math.sin(e) * d);
        for (var i = 0; f > i; i++)
          (e += h),
            1 != g &&
              a.lineTo(b + Math.cos(e) * d * g, c + Math.sin(e) * d * g),
            (e += h),
            a.lineTo(b + Math.cos(e) * d, c + Math.sin(e) * d);
        a.closePath();
      }),
      (a.beginCmd = new c.BeginPath()),
      (createjs.Graphics = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      this.EventDispatcher_constructor(),
        (this.alpha = 1),
        (this.cacheCanvas = null),
        (this.cacheID = 0),
        (this.id = createjs.UID.get()),
        (this.mouseEnabled = !0),
        (this.tickEnabled = !0),
        (this.name = null),
        (this.parent = null),
        (this.regX = 0),
        (this.regY = 0),
        (this.rotation = 0),
        (this.scaleX = 1),
        (this.scaleY = 1),
        (this.skewX = 0),
        (this.skewY = 0),
        (this.shadow = null),
        (this.visible = !0),
        (this.x = 0),
        (this.y = 0),
        (this.transformMatrix = null),
        (this.compositeOperation = null),
        (this.snapToPixel = !0),
        (this.filters = null),
        (this.mask = null),
        (this.hitArea = null),
        (this.cursor = null),
        (this._cacheOffsetX = 0),
        (this._cacheOffsetY = 0),
        (this._filterOffsetX = 0),
        (this._filterOffsetY = 0),
        (this._cacheScale = 1),
        (this._cacheDataURLID = 0),
        (this._cacheDataURL = null),
        (this._props = new createjs.DisplayProps()),
        (this._rectangle = new createjs.Rectangle()),
        (this._bounds = null);
    }
    var b = createjs.extend(a, createjs.EventDispatcher);
    (a._MOUSE_EVENTS = [
      "click",
      "dblclick",
      "mousedown",
      "mouseout",
      "mouseover",
      "pressmove",
      "pressup",
      "rollout",
      "rollover",
    ]),
      (a.suppressCrossDomainErrors = !1),
      (a._snapToPixelEnabled = !1);
    var c = createjs.createCanvas
      ? createjs.createCanvas()
      : document.createElement("canvas");
    c.getContext &&
      ((a._hitTestCanvas = c),
      (a._hitTestContext = c.getContext("2d")),
      (c.width = c.height = 1)),
      (a._nextCacheID = 1),
      (b.getStage = function () {
        for (var a = this, b = createjs.Stage; a.parent; ) a = a.parent;
        return a instanceof b ? a : null;
      });
    try {
      Object.defineProperties(b, { stage: { get: b.getStage } });
    } catch (d) {}
    (b.isVisible = function () {
      return !!(
        this.visible &&
        this.alpha > 0 &&
        0 != this.scaleX &&
        0 != this.scaleY
      );
    }),
      (b.draw = function (a, b) {
        var c = this.cacheCanvas;
        if (b || !c) return !1;
        var d = this._cacheScale;
        return (
          a.drawImage(
            c,
            this._cacheOffsetX + this._filterOffsetX,
            this._cacheOffsetY + this._filterOffsetY,
            c.width / d,
            c.height / d
          ),
          !0
        );
      }),
      (b.updateContext = function (b) {
        var c = this,
          d = c.mask,
          e = c._props.matrix;
        d &&
          d.graphics &&
          !d.graphics.isEmpty() &&
          (d.getMatrix(e),
          b.transform(e.a, e.b, e.c, e.d, e.tx, e.ty),
          d.graphics.drawAsPath(b),
          b.clip(),
          e.invert(),
          b.transform(e.a, e.b, e.c, e.d, e.tx, e.ty)),
          this.getMatrix(e);
        var f = e.tx,
          g = e.ty;
        a._snapToPixelEnabled &&
          c.snapToPixel &&
          ((f = (f + (0 > f ? -0.5 : 0.5)) | 0),
          (g = (g + (0 > g ? -0.5 : 0.5)) | 0)),
          b.transform(e.a, e.b, e.c, e.d, f, g),
          (b.globalAlpha *= c.alpha),
          c.compositeOperation &&
            (b.globalCompositeOperation = c.compositeOperation),
          c.shadow && this._applyShadow(b, c.shadow);
      }),
      (b.cache = function (a, b, c, d, e) {
        (e = e || 1),
          this.cacheCanvas ||
            (this.cacheCanvas = createjs.createCanvas
              ? createjs.createCanvas()
              : document.createElement("canvas")),
          (this._cacheWidth = c),
          (this._cacheHeight = d),
          (this._cacheOffsetX = a),
          (this._cacheOffsetY = b),
          (this._cacheScale = e),
          this.updateCache();
      }),
      (b.updateCache = function (b) {
        var c = this.cacheCanvas;
        if (!c) throw "cache() must be called before updateCache()";
        var d = this._cacheScale,
          e = this._cacheOffsetX * d,
          f = this._cacheOffsetY * d,
          g = this._cacheWidth,
          h = this._cacheHeight,
          i = c.getContext("2d"),
          j = this._getFilterBounds();
        (e += this._filterOffsetX = j.x),
          (f += this._filterOffsetY = j.y),
          (g = Math.ceil(g * d) + j.width),
          (h = Math.ceil(h * d) + j.height),
          g != c.width || h != c.height
            ? ((c.width = g), (c.height = h))
            : b || i.clearRect(0, 0, g + 1, h + 1),
          i.save(),
          (i.globalCompositeOperation = b),
          i.setTransform(d, 0, 0, d, -e, -f),
          this.draw(i, !0),
          this._applyFilters(),
          i.restore(),
          (this.cacheID = a._nextCacheID++);
      }),
      (b.uncache = function () {
        (this._cacheDataURL = this.cacheCanvas = null),
          (this.cacheID =
            this._cacheOffsetX =
            this._cacheOffsetY =
            this._filterOffsetX =
            this._filterOffsetY =
              0),
          (this._cacheScale = 1);
      }),
      (b.getCacheDataURL = function () {
        return this.cacheCanvas
          ? (this.cacheID != this._cacheDataURLID &&
              (this._cacheDataURL = this.cacheCanvas.toDataURL()),
            this._cacheDataURL)
          : null;
      }),
      (b.localToGlobal = function (a, b, c) {
        return this.getConcatenatedMatrix(this._props.matrix).transformPoint(
          a,
          b,
          c || new createjs.Point()
        );
      }),
      (b.globalToLocal = function (a, b, c) {
        return this.getConcatenatedMatrix(this._props.matrix)
          .invert()
          .transformPoint(a, b, c || new createjs.Point());
      }),
      (b.localToLocal = function (a, b, c, d) {
        return (d = this.localToGlobal(a, b, d)), c.globalToLocal(d.x, d.y, d);
      }),
      (b.setTransform = function (a, b, c, d, e, f, g, h, i) {
        return (
          (this.x = a || 0),
          (this.y = b || 0),
          (this.scaleX = null == c ? 1 : c),
          (this.scaleY = null == d ? 1 : d),
          (this.rotation = e || 0),
          (this.skewX = f || 0),
          (this.skewY = g || 0),
          (this.regX = h || 0),
          (this.regY = i || 0),
          this
        );
      }),
      (b.getMatrix = function (a) {
        var b = this,
          c = (a && a.identity()) || new createjs.Matrix2D();
        return b.transformMatrix
          ? c.copy(b.transformMatrix)
          : c.appendTransform(
              b.x,
              b.y,
              b.scaleX,
              b.scaleY,
              b.rotation,
              b.skewX,
              b.skewY,
              b.regX,
              b.regY
            );
      }),
      (b.getConcatenatedMatrix = function (a) {
        for (var b = this, c = this.getMatrix(a); (b = b.parent); )
          c.prependMatrix(b.getMatrix(b._props.matrix));
        return c;
      }),
      (b.getConcatenatedDisplayProps = function (a) {
        a = a ? a.identity() : new createjs.DisplayProps();
        var b = this,
          c = b.getMatrix(a.matrix);
        do
          a.prepend(b.visible, b.alpha, b.shadow, b.compositeOperation),
            b != this && c.prependMatrix(b.getMatrix(b._props.matrix));
        while ((b = b.parent));
        return a;
      }),
      (b.hitTest = function (b, c) {
        var d = a._hitTestContext;
        d.setTransform(1, 0, 0, 1, -b, -c), this.draw(d);
        var e = this._testHit(d);
        return d.setTransform(1, 0, 0, 1, 0, 0), d.clearRect(0, 0, 2, 2), e;
      }),
      (b.set = function (a) {
        for (var b in a) this[b] = a[b];
        return this;
      }),
      (b.getBounds = function () {
        if (this._bounds) return this._rectangle.copy(this._bounds);
        var a = this.cacheCanvas;
        if (a) {
          var b = this._cacheScale;
          return this._rectangle.setValues(
            this._cacheOffsetX,
            this._cacheOffsetY,
            a.width / b,
            a.height / b
          );
        }
        return null;
      }),
      (b.getTransformedBounds = function () {
        return this._getBounds();
      }),
      (b.setBounds = function (a, b, c, d) {
        null == a && (this._bounds = a),
          (this._bounds = (this._bounds || new createjs.Rectangle()).setValues(
            a,
            b,
            c,
            d
          ));
      }),
      (b.clone = function () {
        return this._cloneProps(new a());
      }),
      (b.toString = function () {
        return "[DisplayObject (name=" + this.name + ")]";
      }),
      (b._cloneProps = function (a) {
        return (
          (a.alpha = this.alpha),
          (a.mouseEnabled = this.mouseEnabled),
          (a.tickEnabled = this.tickEnabled),
          (a.name = this.name),
          (a.regX = this.regX),
          (a.regY = this.regY),
          (a.rotation = this.rotation),
          (a.scaleX = this.scaleX),
          (a.scaleY = this.scaleY),
          (a.shadow = this.shadow),
          (a.skewX = this.skewX),
          (a.skewY = this.skewY),
          (a.visible = this.visible),
          (a.x = this.x),
          (a.y = this.y),
          (a.compositeOperation = this.compositeOperation),
          (a.snapToPixel = this.snapToPixel),
          (a.filters = null == this.filters ? null : this.filters.slice(0)),
          (a.mask = this.mask),
          (a.hitArea = this.hitArea),
          (a.cursor = this.cursor),
          (a._bounds = this._bounds),
          a
        );
      }),
      (b._applyShadow = function (a, b) {
        (b = b || Shadow.identity),
          (a.shadowColor = b.color),
          (a.shadowOffsetX = b.offsetX),
          (a.shadowOffsetY = b.offsetY),
          (a.shadowBlur = b.blur);
      }),
      (b._tick = function (a) {
        var b = this._listeners;
        b &&
          b.tick &&
          ((a.target = null),
          (a.propagationStopped = a.immediatePropagationStopped = !1),
          this.dispatchEvent(a));
      }),
      (b._testHit = function (b) {
        try {
          var c = b.getImageData(0, 0, 1, 1).data[3] > 1;
        } catch (d) {
          if (!a.suppressCrossDomainErrors)
            throw "An error has occurred. This is most likely due to security restrictions on reading canvas pixel data with local or cross-domain images.";
        }
        return c;
      }),
      (b._applyFilters = function () {
        if (this.filters && 0 != this.filters.length && this.cacheCanvas)
          for (
            var a = this.filters.length,
              b = this.cacheCanvas.getContext("2d"),
              c = this.cacheCanvas.width,
              d = this.cacheCanvas.height,
              e = 0;
            a > e;
            e++
          )
            this.filters[e].applyFilter(b, 0, 0, c, d);
      }),
      (b._getFilterBounds = function (a) {
        var b,
          c = this.filters,
          d = this._rectangle.setValues(0, 0, 0, 0);
        if (!c || !(b = c.length)) return d;
        for (var e = 0; b > e; e++) {
          var f = this.filters[e];
          f.getBounds && f.getBounds(d);
        }
        return d;
      }),
      (b._getBounds = function (a, b) {
        return this._transformBounds(this.getBounds(), a, b);
      }),
      (b._transformBounds = function (a, b, c) {
        if (!a) return a;
        var d = a.x,
          e = a.y,
          f = a.width,
          g = a.height,
          h = this._props.matrix;
        (h = c ? h.identity() : this.getMatrix(h)),
          (d || e) && h.appendTransform(0, 0, 1, 1, 0, 0, 0, -d, -e),
          b && h.prependMatrix(b);
        var i = f * h.a,
          j = f * h.b,
          k = g * h.c,
          l = g * h.d,
          m = h.tx,
          n = h.ty,
          o = m,
          p = m,
          q = n,
          r = n;
        return (
          (d = i + m) < o ? (o = d) : d > p && (p = d),
          (d = i + k + m) < o ? (o = d) : d > p && (p = d),
          (d = k + m) < o ? (o = d) : d > p && (p = d),
          (e = j + n) < q ? (q = e) : e > r && (r = e),
          (e = j + l + n) < q ? (q = e) : e > r && (r = e),
          (e = l + n) < q ? (q = e) : e > r && (r = e),
          a.setValues(o, q, p - o, r - q)
        );
      }),
      (b._hasMouseEventListener = function () {
        for (var b = a._MOUSE_EVENTS, c = 0, d = b.length; d > c; c++)
          if (this.hasEventListener(b[c])) return !0;
        return !!this.cursor;
      }),
      (createjs.DisplayObject = createjs.promote(a, "EventDispatcher"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      this.DisplayObject_constructor(),
        (this.children = []),
        (this.mouseChildren = !0),
        (this.tickChildren = !0);
    }
    var b = createjs.extend(a, createjs.DisplayObject);
    b.getNumChildren = function () {
      return this.children.length;
    };
    try {
      Object.defineProperties(b, { numChildren: { get: b.getNumChildren } });
    } catch (c) {}
    (b.initialize = a),
      (b.isVisible = function () {
        var a = this.cacheCanvas || this.children.length;
        return !!(
          this.visible &&
          this.alpha > 0 &&
          0 != this.scaleX &&
          0 != this.scaleY &&
          a
        );
      }),
      (b.draw = function (a, b) {
        if (this.DisplayObject_draw(a, b)) return !0;
        for (var c = this.children.slice(), d = 0, e = c.length; e > d; d++) {
          var f = c[d];
          f.isVisible() &&
            (a.save(), f.updateContext(a), f.draw(a), a.restore());
        }
        return !0;
      }),
      (b.addChild = function (a) {
        if (null == a) return a;
        var b = arguments.length;
        if (b > 1) {
          for (var c = 0; b > c; c++) this.addChild(arguments[c]);
          return arguments[b - 1];
        }
        return (
          a.parent && a.parent.removeChild(a),
          (a.parent = this),
          this.children.push(a),
          a.dispatchEvent("added"),
          a
        );
      }),
      (b.addChildAt = function (a, b) {
        var c = arguments.length,
          d = arguments[c - 1];
        if (0 > d || d > this.children.length) return arguments[c - 2];
        if (c > 2) {
          for (var e = 0; c - 1 > e; e++) this.addChildAt(arguments[e], d + e);
          return arguments[c - 2];
        }
        return (
          a.parent && a.parent.removeChild(a),
          (a.parent = this),
          this.children.splice(b, 0, a),
          a.dispatchEvent("added"),
          a
        );
      }),
      (b.removeChild = function (a) {
        var b = arguments.length;
        if (b > 1) {
          for (var c = !0, d = 0; b > d; d++)
            c = c && this.removeChild(arguments[d]);
          return c;
        }
        return this.removeChildAt(createjs.indexOf(this.children, a));
      }),
      (b.removeChildAt = function (a) {
        var b = arguments.length;
        if (b > 1) {
          for (var c = [], d = 0; b > d; d++) c[d] = arguments[d];
          c.sort(function (a, b) {
            return b - a;
          });
          for (var e = !0, d = 0; b > d; d++) e = e && this.removeChildAt(c[d]);
          return e;
        }
        if (0 > a || a > this.children.length - 1) return !1;
        var f = this.children[a];
        return (
          f && (f.parent = null),
          this.children.splice(a, 1),
          f.dispatchEvent("removed"),
          !0
        );
      }),
      (b.removeAllChildren = function () {
        for (var a = this.children; a.length; ) this.removeChildAt(0);
      }),
      (b.getChildAt = function (a) {
        return this.children[a];
      }),
      (b.getChildByName = function (a) {
        for (var b = this.children, c = 0, d = b.length; d > c; c++)
          if (b[c].name == a) return b[c];
        return null;
      }),
      (b.sortChildren = function (a) {
        this.children.sort(a);
      }),
      (b.getChildIndex = function (a) {
        return createjs.indexOf(this.children, a);
      }),
      (b.swapChildrenAt = function (a, b) {
        var c = this.children,
          d = c[a],
          e = c[b];
        d && e && ((c[a] = e), (c[b] = d));
      }),
      (b.swapChildren = function (a, b) {
        for (
          var c, d, e = this.children, f = 0, g = e.length;
          g > f &&
          (e[f] == a && (c = f), e[f] == b && (d = f), null == c || null == d);
          f++
        );
        f != g && ((e[c] = b), (e[d] = a));
      }),
      (b.setChildIndex = function (a, b) {
        var c = this.children,
          d = c.length;
        if (!(a.parent != this || 0 > b || b >= d)) {
          for (var e = 0; d > e && c[e] != a; e++);
          e != d && e != b && (c.splice(e, 1), c.splice(b, 0, a));
        }
      }),
      (b.contains = function (a) {
        for (; a; ) {
          if (a == this) return !0;
          a = a.parent;
        }
        return !1;
      }),
      (b.hitTest = function (a, b) {
        return null != this.getObjectUnderPoint(a, b);
      }),
      (b.getObjectsUnderPoint = function (a, b, c) {
        var d = [],
          e = this.localToGlobal(a, b);
        return this._getObjectsUnderPoint(e.x, e.y, d, c > 0, 1 == c), d;
      }),
      (b.getObjectUnderPoint = function (a, b, c) {
        var d = this.localToGlobal(a, b);
        return this._getObjectsUnderPoint(d.x, d.y, null, c > 0, 1 == c);
      }),
      (b.getBounds = function () {
        return this._getBounds(null, !0);
      }),
      (b.getTransformedBounds = function () {
        return this._getBounds();
      }),
      (b.clone = function (b) {
        var c = this._cloneProps(new a());
        return b && this._cloneChildren(c), c;
      }),
      (b.toString = function () {
        return "[Container (name=" + this.name + ")]";
      }),
      (b._tick = function (a) {
        if (this.tickChildren)
          for (var b = this.children.length - 1; b >= 0; b--) {
            var c = this.children[b];
            c.tickEnabled && c._tick && c._tick(a);
          }
        this.DisplayObject__tick(a);
      }),
      (b._cloneChildren = function (a) {
        a.children.length && a.removeAllChildren();
        for (var b = a.children, c = 0, d = this.children.length; d > c; c++) {
          var e = this.children[c].clone(!0);
          (e.parent = a), b.push(e);
        }
      }),
      (b._getObjectsUnderPoint = function (b, c, d, e, f, g) {
        if (((g = g || 0), !g && !this._testMask(this, b, c))) return null;
        var h,
          i = createjs.DisplayObject._hitTestContext;
        f = f || (e && this._hasMouseEventListener());
        for (var j = this.children, k = j.length, l = k - 1; l >= 0; l--) {
          var m = j[l],
            n = m.hitArea;
          if (
            m.visible &&
            (n || m.isVisible()) &&
            (!e || m.mouseEnabled) &&
            (n || this._testMask(m, b, c))
          )
            if (!n && m instanceof a) {
              var o = m._getObjectsUnderPoint(b, c, d, e, f, g + 1);
              if (!d && o) return e && !this.mouseChildren ? this : o;
            } else {
              if (e && !f && !m._hasMouseEventListener()) continue;
              var p = m.getConcatenatedDisplayProps(m._props);
              if (
                ((h = p.matrix),
                n &&
                  (h.appendMatrix(n.getMatrix(n._props.matrix)),
                  (p.alpha = n.alpha)),
                (i.globalAlpha = p.alpha),
                i.setTransform(h.a, h.b, h.c, h.d, h.tx - b, h.ty - c),
                (n || m).draw(i),
                !this._testHit(i))
              )
                continue;
              if (
                (i.setTransform(1, 0, 0, 1, 0, 0), i.clearRect(0, 0, 2, 2), !d)
              )
                return e && !this.mouseChildren ? this : m;
              d.push(m);
            }
        }
        return null;
      }),
      (b._testMask = function (a, b, c) {
        var d = a.mask;
        if (!d || !d.graphics || d.graphics.isEmpty()) return !0;
        var e = this._props.matrix,
          f = a.parent;
        (e = f ? f.getConcatenatedMatrix(e) : e.identity()),
          (e = d.getMatrix(d._props.matrix).prependMatrix(e));
        var g = createjs.DisplayObject._hitTestContext;
        return (
          g.setTransform(e.a, e.b, e.c, e.d, e.tx - b, e.ty - c),
          d.graphics.drawAsPath(g),
          (g.fillStyle = "#000"),
          g.fill(),
          this._testHit(g)
            ? (g.setTransform(1, 0, 0, 1, 0, 0), g.clearRect(0, 0, 2, 2), !0)
            : !1
        );
      }),
      (b._getBounds = function (a, b) {
        var c = this.DisplayObject_getBounds();
        if (c) return this._transformBounds(c, a, b);
        var d = this._props.matrix;
        (d = b ? d.identity() : this.getMatrix(d)), a && d.prependMatrix(a);
        for (var e = this.children.length, f = null, g = 0; e > g; g++) {
          var h = this.children[g];
          h.visible &&
            (c = h._getBounds(d)) &&
            (f ? f.extend(c.x, c.y, c.width, c.height) : (f = c.clone()));
        }
        return f;
      }),
      (createjs.Container = createjs.promote(a, "DisplayObject"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.Container_constructor(),
        (this.autoClear = !0),
        (this.canvas = "string" == typeof a ? document.getElementById(a) : a),
        (this.mouseX = 0),
        (this.mouseY = 0),
        (this.drawRect = null),
        (this.snapToPixelEnabled = !1),
        (this.mouseInBounds = !1),
        (this.tickOnUpdate = !0),
        (this.mouseMoveOutside = !1),
        (this.preventSelection = !0),
        (this._pointerData = {}),
        (this._pointerCount = 0),
        (this._primaryPointerID = null),
        (this._mouseOverIntervalID = null),
        (this._nextStage = null),
        (this._prevStage = null),
        this.enableDOMEvents(!0);
    }
    var b = createjs.extend(a, createjs.Container);
    (b._get_nextStage = function () {
      return this._nextStage;
    }),
      (b._set_nextStage = function (a) {
        this._nextStage && (this._nextStage._prevStage = null),
          a && (a._prevStage = this),
          (this._nextStage = a);
      });
    try {
      Object.defineProperties(b, {
        nextStage: { get: b._get_nextStage, set: b._set_nextStage },
      });
    } catch (c) {}
    (b.update = function (a) {
      if (
        this.canvas &&
        (this.tickOnUpdate && this.tick(a),
        this.dispatchEvent("drawstart", !1, !0) !== !1)
      ) {
        createjs.DisplayObject._snapToPixelEnabled = this.snapToPixelEnabled;
        var b = this.drawRect,
          c = this.canvas.getContext("2d");
        c.setTransform(1, 0, 0, 1, 0, 0),
          this.autoClear &&
            (b
              ? c.clearRect(b.x, b.y, b.width, b.height)
              : c.clearRect(
                  0,
                  0,
                  this.canvas.width + 1,
                  this.canvas.height + 1
                )),
          c.save(),
          this.drawRect &&
            (c.beginPath(), c.rect(b.x, b.y, b.width, b.height), c.clip()),
          this.updateContext(c),
          this.draw(c, !1),
          c.restore(),
          this.dispatchEvent("drawend");
      }
    }),
      (b.tick = function (a) {
        if (
          this.tickEnabled &&
          this.dispatchEvent("tickstart", !1, !0) !== !1
        ) {
          var b = new createjs.Event("tick");
          if (a) for (var c in a) a.hasOwnProperty(c) && (b[c] = a[c]);
          this._tick(b), this.dispatchEvent("tickend");
        }
      }),
      (b.handleEvent = function (a) {
        "tick" == a.type && this.update(a);
      }),
      (b.clear = function () {
        if (this.canvas) {
          var a = this.canvas.getContext("2d");
          a.setTransform(1, 0, 0, 1, 0, 0),
            a.clearRect(0, 0, this.canvas.width + 1, this.canvas.height + 1);
        }
      }),
      (b.toDataURL = function (a, b) {
        var c,
          d = this.canvas.getContext("2d"),
          e = this.canvas.width,
          f = this.canvas.height;
        if (a) {
          c = d.getImageData(0, 0, e, f);
          var g = d.globalCompositeOperation;
          (d.globalCompositeOperation = "destination-over"),
            (d.fillStyle = a),
            d.fillRect(0, 0, e, f);
        }
        var h = this.canvas.toDataURL(b || "image/png");
        return (
          a && (d.putImageData(c, 0, 0), (d.globalCompositeOperation = g)), h
        );
      }),
      (b.enableMouseOver = function (a) {
        if (
          (this._mouseOverIntervalID &&
            (clearInterval(this._mouseOverIntervalID),
            (this._mouseOverIntervalID = null),
            0 == a && this._testMouseOver(!0)),
          null == a)
        )
          a = 20;
        else if (0 >= a) return;
        var b = this;
        this._mouseOverIntervalID = setInterval(function () {
          b._testMouseOver();
        }, 1e3 / Math.min(50, a));
      }),
      (b.enableDOMEvents = function (a) {
        null == a && (a = !0);
        var b,
          c,
          d = this._eventListeners;
        if (!a && d) {
          for (b in d) (c = d[b]), c.t.removeEventListener(b, c.f, !1);
          this._eventListeners = null;
        } else if (a && !d && this.canvas) {
          var e = window.addEventListener ? window : document,
            f = this;
          (d = this._eventListeners = {}),
            (d.mouseup = {
              t: e,
              f: function (a) {
                f._handleMouseUp(a);
              },
            }),
            (d.mousemove = {
              t: e,
              f: function (a) {
                f._handleMouseMove(a);
              },
            }),
            (d.dblclick = {
              t: this.canvas,
              f: function (a) {
                f._handleDoubleClick(a);
              },
            }),
            (d.mousedown = {
              t: this.canvas,
              f: function (a) {
                f._handleMouseDown(a);
              },
            });
          for (b in d) (c = d[b]), c.t.addEventListener(b, c.f, !1);
        }
      }),
      (b.clone = function () {
        throw "Stage cannot be cloned.";
      }),
      (b.toString = function () {
        return "[Stage (name=" + this.name + ")]";
      }),
      (b._getElementRect = function (a) {
        var b;
        try {
          b = a.getBoundingClientRect();
        } catch (c) {
          b = {
            top: a.offsetTop,
            left: a.offsetLeft,
            width: a.offsetWidth,
            height: a.offsetHeight,
          };
        }
        var d =
            (window.pageXOffset || document.scrollLeft || 0) -
            (document.clientLeft || document.body.clientLeft || 0),
          e =
            (window.pageYOffset || document.scrollTop || 0) -
            (document.clientTop || document.body.clientTop || 0),
          f = window.getComputedStyle
            ? getComputedStyle(a, null)
            : a.currentStyle,
          g = parseInt(f.paddingLeft) + parseInt(f.borderLeftWidth),
          h = parseInt(f.paddingTop) + parseInt(f.borderTopWidth),
          i = parseInt(f.paddingRight) + parseInt(f.borderRightWidth),
          j = parseInt(f.paddingBottom) + parseInt(f.borderBottomWidth);
        return {
          left: b.left + d + g,
          right: b.right + d - i,
          top: b.top + e + h,
          bottom: b.bottom + e - j,
        };
      }),
      (b._getPointerData = function (a) {
        var b = this._pointerData[a];
        return b || (b = this._pointerData[a] = { x: 0, y: 0 }), b;
      }),
      (b._handleMouseMove = function (a) {
        a || (a = window.event),
          this._handlePointerMove(-1, a, a.pageX, a.pageY);
      }),
      (b._handlePointerMove = function (a, b, c, d, e) {
        if ((!this._prevStage || void 0 !== e) && this.canvas) {
          var f = this._nextStage,
            g = this._getPointerData(a),
            h = g.inBounds;
          this._updatePointerPosition(a, b, c, d),
            (h || g.inBounds || this.mouseMoveOutside) &&
              (-1 === a &&
                g.inBounds == !h &&
                this._dispatchMouseEvent(
                  this,
                  h ? "mouseleave" : "mouseenter",
                  !1,
                  a,
                  g,
                  b
                ),
              this._dispatchMouseEvent(this, "stagemousemove", !1, a, g, b),
              this._dispatchMouseEvent(g.target, "pressmove", !0, a, g, b)),
            f && f._handlePointerMove(a, b, c, d, null);
        }
      }),
      (b._updatePointerPosition = function (a, b, c, d) {
        var e = this._getElementRect(this.canvas);
        (c -= e.left), (d -= e.top);
        var f = this.canvas.width,
          g = this.canvas.height;
        (c /= (e.right - e.left) / f), (d /= (e.bottom - e.top) / g);
        var h = this._getPointerData(a);
        (h.inBounds = c >= 0 && d >= 0 && f - 1 >= c && g - 1 >= d)
          ? ((h.x = c), (h.y = d))
          : this.mouseMoveOutside &&
            ((h.x = 0 > c ? 0 : c > f - 1 ? f - 1 : c),
            (h.y = 0 > d ? 0 : d > g - 1 ? g - 1 : d)),
          (h.posEvtObj = b),
          (h.rawX = c),
          (h.rawY = d),
          (a === this._primaryPointerID || -1 === a) &&
            ((this.mouseX = h.x),
            (this.mouseY = h.y),
            (this.mouseInBounds = h.inBounds));
      }),
      (b._handleMouseUp = function (a) {
        this._handlePointerUp(-1, a, !1);
      }),
      (b._handlePointerUp = function (a, b, c, d) {
        var e = this._nextStage,
          f = this._getPointerData(a);
        if (!this._prevStage || void 0 !== d) {
          var g = null,
            h = f.target;
          d ||
            (!h && !e) ||
            (g = this._getObjectsUnderPoint(f.x, f.y, null, !0)),
            f.down &&
              (this._dispatchMouseEvent(this, "stagemouseup", !1, a, f, b, g),
              (f.down = !1)),
            g == h && this._dispatchMouseEvent(h, "click", !0, a, f, b),
            this._dispatchMouseEvent(h, "pressup", !0, a, f, b),
            c
              ? (a == this._primaryPointerID && (this._primaryPointerID = null),
                delete this._pointerData[a])
              : (f.target = null),
            e && e._handlePointerUp(a, b, c, d || (g && this));
        }
      }),
      (b._handleMouseDown = function (a) {
        this._handlePointerDown(-1, a, a.pageX, a.pageY);
      }),
      (b._handlePointerDown = function (a, b, c, d, e) {
        this.preventSelection && b.preventDefault(),
          (null == this._primaryPointerID || -1 === a) &&
            (this._primaryPointerID = a),
          null != d && this._updatePointerPosition(a, b, c, d);
        var f = null,
          g = this._nextStage,
          h = this._getPointerData(a);
        e || (f = h.target = this._getObjectsUnderPoint(h.x, h.y, null, !0)),
          h.inBounds &&
            (this._dispatchMouseEvent(this, "stagemousedown", !1, a, h, b, f),
            (h.down = !0)),
          this._dispatchMouseEvent(f, "mousedown", !0, a, h, b),
          g && g._handlePointerDown(a, b, c, d, e || (f && this));
      }),
      (b._testMouseOver = function (a, b, c) {
        if (!this._prevStage || void 0 !== b) {
          var d = this._nextStage;
          if (!this._mouseOverIntervalID)
            return void (d && d._testMouseOver(a, b, c));
          var e = this._getPointerData(-1);
          if (
            e &&
            (a ||
              this.mouseX != this._mouseOverX ||
              this.mouseY != this._mouseOverY ||
              !this.mouseInBounds)
          ) {
            var f,
              g,
              h,
              i = e.posEvtObj,
              j = c || (i && i.target == this.canvas),
              k = null,
              l = -1,
              m = "";
            !b &&
              (a || (this.mouseInBounds && j)) &&
              ((k = this._getObjectsUnderPoint(
                this.mouseX,
                this.mouseY,
                null,
                !0
              )),
              (this._mouseOverX = this.mouseX),
              (this._mouseOverY = this.mouseY));
            var n = this._mouseOverTarget || [],
              o = n[n.length - 1],
              p = (this._mouseOverTarget = []);
            for (f = k; f; ) p.unshift(f), m || (m = f.cursor), (f = f.parent);
            for (
              this.canvas.style.cursor = m,
                !b && c && (c.canvas.style.cursor = m),
                g = 0,
                h = p.length;
              h > g && p[g] == n[g];
              g++
            )
              l = g;
            for (
              o != k &&
                this._dispatchMouseEvent(o, "mouseout", !0, -1, e, i, k),
                g = n.length - 1;
              g > l;
              g--
            )
              this._dispatchMouseEvent(n[g], "rollout", !1, -1, e, i, k);
            for (g = p.length - 1; g > l; g--)
              this._dispatchMouseEvent(p[g], "rollover", !1, -1, e, i, o);
            o != k && this._dispatchMouseEvent(k, "mouseover", !0, -1, e, i, o),
              d && d._testMouseOver(a, b || (k && this), c || (j && this));
          }
        }
      }),
      (b._handleDoubleClick = function (a, b) {
        var c = null,
          d = this._nextStage,
          e = this._getPointerData(-1);
        b ||
          ((c = this._getObjectsUnderPoint(e.x, e.y, null, !0)),
          this._dispatchMouseEvent(c, "dblclick", !0, -1, e, a)),
          d && d._handleDoubleClick(a, b || (c && this));
      }),
      (b._dispatchMouseEvent = function (a, b, c, d, e, f, g) {
        if (a && (c || a.hasEventListener(b))) {
          var h = new createjs.MouseEvent(
            b,
            c,
            !1,
            e.x,
            e.y,
            f,
            d,
            d === this._primaryPointerID || -1 === d,
            e.rawX,
            e.rawY,
            g
          );
          a.dispatchEvent(h);
        }
      }),
      (createjs.Stage = createjs.promote(a, "Container"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    function a(a) {
      this.DisplayObject_constructor(),
        "string" == typeof a
          ? ((this.image = document.createElement("img")), (this.image.src = a))
          : (this.image = a),
        (this.sourceRect = null);
    }
    var b = createjs.extend(a, createjs.DisplayObject);
    (b.initialize = a),
      (b.isVisible = function () {
        var a = this.image,
          b =
            this.cacheCanvas ||
            (a && (a.naturalWidth || a.getContext || a.readyState >= 2));
        return !!(
          this.visible &&
          this.alpha > 0 &&
          0 != this.scaleX &&
          0 != this.scaleY &&
          b
        );
      }),
      (b.draw = function (a, b) {
        if (this.DisplayObject_draw(a, b) || !this.image) return !0;
        var c = this.image,
          d = this.sourceRect;
        if (d) {
          var e = d.x,
            f = d.y,
            g = e + d.width,
            h = f + d.height,
            i = 0,
            j = 0,
            k = c.width,
            l = c.height;
          0 > e && ((i -= e), (e = 0)),
            g > k && (g = k),
            0 > f && ((j -= f), (f = 0)),
            h > l && (h = l),
            a.drawImage(c, e, f, g - e, h - f, i, j, g - e, h - f);
        } else a.drawImage(c, 0, 0);
        return !0;
      }),
      (b.getBounds = function () {
        var a = this.DisplayObject_getBounds();
        if (a) return a;
        var b = this.image,
          c = this.sourceRect || b,
          d = b && (b.naturalWidth || b.getContext || b.readyState >= 2);
        return d ? this._rectangle.setValues(0, 0, c.width, c.height) : null;
      }),
      (b.clone = function () {
        var b = new a(this.image);
        return (
          this.sourceRect && (b.sourceRect = this.sourceRect.clone()),
          this._cloneProps(b),
          b
        );
      }),
      (b.toString = function () {
        return "[Bitmap (name=" + this.name + ")]";
      }),
      (createjs.Bitmap = createjs.promote(a, "DisplayObject"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.DisplayObject_constructor(),
        (this.currentFrame = 0),
        (this.currentAnimation = null),
        (this.paused = !0),
        (this.spriteSheet = a),
        (this.currentAnimationFrame = 0),
        (this.framerate = 0),
        (this._animation = null),
        (this._currentFrame = null),
        (this._skipAdvance = !1),
        null != b && this.gotoAndPlay(b);
    }
    var b = createjs.extend(a, createjs.DisplayObject);
    (b.initialize = a),
      (b.isVisible = function () {
        var a = this.cacheCanvas || this.spriteSheet.complete;
        return !!(
          this.visible &&
          this.alpha > 0 &&
          0 != this.scaleX &&
          0 != this.scaleY &&
          a
        );
      }),
      (b.draw = function (a, b) {
        if (this.DisplayObject_draw(a, b)) return !0;
        this._normalizeFrame();
        var c = this.spriteSheet.getFrame(0 | this._currentFrame);
        if (!c) return !1;
        var d = c.rect;
        return (
          d.width &&
            d.height &&
            a.drawImage(
              c.image,
              d.x,
              d.y,
              d.width,
              d.height,
              -c.regX,
              -c.regY,
              d.width,
              d.height
            ),
          !0
        );
      }),
      (b.play = function () {
        this.paused = !1;
      }),
      (b.stop = function () {
        this.paused = !0;
      }),
      (b.gotoAndPlay = function (a) {
        (this.paused = !1), (this._skipAdvance = !0), this._goto(a);
      }),
      (b.gotoAndStop = function (a) {
        (this.paused = !0), this._goto(a);
      }),
      (b.advance = function (a) {
        var b = this.framerate || this.spriteSheet.framerate,
          c = b && null != a ? a / (1e3 / b) : 1;
        this._normalizeFrame(c);
      }),
      (b.getBounds = function () {
        return (
          this.DisplayObject_getBounds() ||
          this.spriteSheet.getFrameBounds(this.currentFrame, this._rectangle)
        );
      }),
      (b.clone = function () {
        return this._cloneProps(new a(this.spriteSheet));
      }),
      (b.toString = function () {
        return "[Sprite (name=" + this.name + ")]";
      }),
      (b._cloneProps = function (a) {
        return (
          this.DisplayObject__cloneProps(a),
          (a.currentFrame = this.currentFrame),
          (a.currentAnimation = this.currentAnimation),
          (a.paused = this.paused),
          (a.currentAnimationFrame = this.currentAnimationFrame),
          (a.framerate = this.framerate),
          (a._animation = this._animation),
          (a._currentFrame = this._currentFrame),
          (a._skipAdvance = this._skipAdvance),
          a
        );
      }),
      (b._tick = function (a) {
        this.paused ||
          (this._skipAdvance || this.advance(a && a.delta),
          (this._skipAdvance = !1)),
          this.DisplayObject__tick(a);
      }),
      (b._normalizeFrame = function (a) {
        a = a || 0;
        var b,
          c = this._animation,
          d = this.paused,
          e = this._currentFrame;
        if (c) {
          var f = c.speed || 1,
            g = this.currentAnimationFrame;
          if (((b = c.frames.length), g + a * f >= b)) {
            var h = c.next;
            if (this._dispatchAnimationEnd(c, e, d, h, b - 1)) return;
            if (h) return this._goto(h, a - (b - g) / f);
            (this.paused = !0), (g = c.frames.length - 1);
          } else g += a * f;
          (this.currentAnimationFrame = g),
            (this._currentFrame = c.frames[0 | g]);
        } else if (
          ((e = this._currentFrame += a),
          (b = this.spriteSheet.getNumFrames()),
          e >= b &&
            b > 0 &&
            !this._dispatchAnimationEnd(c, e, d, b - 1) &&
            (this._currentFrame -= b) >= b)
        )
          return this._normalizeFrame();
        (e = 0 | this._currentFrame),
          this.currentFrame != e &&
            ((this.currentFrame = e), this.dispatchEvent("change"));
      }),
      (b._dispatchAnimationEnd = function (a, b, c, d, e) {
        var f = a ? a.name : null;
        if (this.hasEventListener("animationend")) {
          var g = new createjs.Event("animationend");
          (g.name = f), (g.next = d), this.dispatchEvent(g);
        }
        var h = this._animation != a || this._currentFrame != b;
        return (
          h ||
            c ||
            !this.paused ||
            ((this.currentAnimationFrame = e), (h = !0)),
          h
        );
      }),
      (b._goto = function (a, b) {
        if (((this.currentAnimationFrame = 0), isNaN(a))) {
          var c = this.spriteSheet.getAnimation(a);
          c &&
            ((this._animation = c),
            (this.currentAnimation = a),
            this._normalizeFrame(b));
        } else
          (this.currentAnimation = this._animation = null),
            (this._currentFrame = a),
            this._normalizeFrame();
      }),
      (createjs.Sprite = createjs.promote(a, "DisplayObject"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.DisplayObject_constructor(),
        (this.graphics = a ? a : new createjs.Graphics());
    }
    var b = createjs.extend(a, createjs.DisplayObject);
    (b.isVisible = function () {
      var a = this.cacheCanvas || (this.graphics && !this.graphics.isEmpty());
      return !!(
        this.visible &&
        this.alpha > 0 &&
        0 != this.scaleX &&
        0 != this.scaleY &&
        a
      );
    }),
      (b.draw = function (a, b) {
        return this.DisplayObject_draw(a, b)
          ? !0
          : (this.graphics.draw(a, this), !0);
      }),
      (b.clone = function (b) {
        var c = b && this.graphics ? this.graphics.clone() : this.graphics;
        return this._cloneProps(new a(c));
      }),
      (b.toString = function () {
        return "[Shape (name=" + this.name + ")]";
      }),
      (createjs.Shape = createjs.promote(a, "DisplayObject"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      this.DisplayObject_constructor(),
        (this.text = a),
        (this.font = b),
        (this.color = c),
        (this.textAlign = "left"),
        (this.textBaseline = "top"),
        (this.maxWidth = null),
        (this.outline = 0),
        (this.lineHeight = 0),
        (this.lineWidth = null);
    }
    var b = createjs.extend(a, createjs.DisplayObject),
      c = createjs.createCanvas
        ? createjs.createCanvas()
        : document.createElement("canvas");
    c.getContext &&
      ((a._workingContext = c.getContext("2d")), (c.width = c.height = 1)),
      (a.H_OFFSETS = { start: 0, left: 0, center: -0.5, end: -1, right: -1 }),
      (a.V_OFFSETS = {
        top: 0,
        hanging: -0.01,
        middle: -0.4,
        alphabetic: -0.8,
        ideographic: -0.85,
        bottom: -1,
      }),
      (b.isVisible = function () {
        var a = this.cacheCanvas || (null != this.text && "" !== this.text);
        return !!(
          this.visible &&
          this.alpha > 0 &&
          0 != this.scaleX &&
          0 != this.scaleY &&
          a
        );
      }),
      (b.draw = function (a, b) {
        if (this.DisplayObject_draw(a, b)) return !0;
        var c = this.color || "#000";
        return (
          this.outline
            ? ((a.strokeStyle = c), (a.lineWidth = 1 * this.outline))
            : (a.fillStyle = c),
          this._drawText(this._prepContext(a)),
          !0
        );
      }),
      (b.getMeasuredWidth = function () {
        return this._getMeasuredWidth(this.text);
      }),
      (b.getMeasuredLineHeight = function () {
        return 1.2 * this._getMeasuredWidth("M");
      }),
      (b.getMeasuredHeight = function () {
        return this._drawText(null, {}).height;
      }),
      (b.getBounds = function () {
        var b = this.DisplayObject_getBounds();
        if (b) return b;
        if (null == this.text || "" === this.text) return null;
        var c = this._drawText(null, {}),
          d =
            this.maxWidth && this.maxWidth < c.width ? this.maxWidth : c.width,
          e = d * a.H_OFFSETS[this.textAlign || "left"],
          f = this.lineHeight || this.getMeasuredLineHeight(),
          g = f * a.V_OFFSETS[this.textBaseline || "top"];
        return this._rectangle.setValues(e, g, d, c.height);
      }),
      (b.getMetrics = function () {
        var b = { lines: [] };
        return (
          (b.lineHeight = this.lineHeight || this.getMeasuredLineHeight()),
          (b.vOffset = b.lineHeight * a.V_OFFSETS[this.textBaseline || "top"]),
          this._drawText(null, b, b.lines)
        );
      }),
      (b.clone = function () {
        return this._cloneProps(new a(this.text, this.font, this.color));
      }),
      (b.toString = function () {
        return (
          "[Text (text=" +
          (this.text.length > 20
            ? this.text.substr(0, 17) + "..."
            : this.text) +
          ")]"
        );
      }),
      (b._cloneProps = function (a) {
        return (
          this.DisplayObject__cloneProps(a),
          (a.textAlign = this.textAlign),
          (a.textBaseline = this.textBaseline),
          (a.maxWidth = this.maxWidth),
          (a.outline = this.outline),
          (a.lineHeight = this.lineHeight),
          (a.lineWidth = this.lineWidth),
          a
        );
      }),
      (b._prepContext = function (a) {
        return (
          (a.font = this.font || "10px sans-serif"),
          (a.textAlign = this.textAlign || "left"),
          (a.textBaseline = this.textBaseline || "top"),
          a
        );
      }),
      (b._drawText = function (b, c, d) {
        var e = !!b;
        e || ((b = a._workingContext), b.save(), this._prepContext(b));
        for (
          var f = this.lineHeight || this.getMeasuredLineHeight(),
            g = 0,
            h = 0,
            i = String(this.text).split(/(?:\r\n|\r|\n)/),
            j = 0,
            k = i.length;
          k > j;
          j++
        ) {
          var l = i[j],
            m = null;
          if (
            null != this.lineWidth &&
            (m = b.measureText(l).width) > this.lineWidth
          ) {
            var n = l.split(/(\s)/);
            (l = n[0]), (m = b.measureText(l).width);
            for (var o = 1, p = n.length; p > o; o += 2) {
              var q = b.measureText(n[o] + n[o + 1]).width;
              m + q > this.lineWidth
                ? (e && this._drawTextLine(b, l, h * f),
                  d && d.push(l),
                  m > g && (g = m),
                  (l = n[o + 1]),
                  (m = b.measureText(l).width),
                  h++)
                : ((l += n[o] + n[o + 1]), (m += q));
            }
          }
          e && this._drawTextLine(b, l, h * f),
            d && d.push(l),
            c && null == m && (m = b.measureText(l).width),
            m > g && (g = m),
            h++;
        }
        return c && ((c.width = g), (c.height = h * f)), e || b.restore(), c;
      }),
      (b._drawTextLine = function (a, b, c) {
        this.outline
          ? a.strokeText(b, 0, c, this.maxWidth || 65535)
          : a.fillText(b, 0, c, this.maxWidth || 65535);
      }),
      (b._getMeasuredWidth = function (b) {
        var c = a._workingContext;
        c.save();
        var d = this._prepContext(c).measureText(b).width;
        return c.restore(), d;
      }),
      (createjs.Text = createjs.promote(a, "DisplayObject"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.Container_constructor(),
        (this.text = a || ""),
        (this.spriteSheet = b),
        (this.lineHeight = 0),
        (this.letterSpacing = 0),
        (this.spaceWidth = 0),
        (this._oldProps = {
          text: 0,
          spriteSheet: 0,
          lineHeight: 0,
          letterSpacing: 0,
          spaceWidth: 0,
        });
    }
    var b = createjs.extend(a, createjs.Container);
    (a.maxPoolSize = 100),
      (a._spritePool = []),
      (b.draw = function (a, b) {
        this.DisplayObject_draw(a, b) ||
          (this._updateText(), this.Container_draw(a, b));
      }),
      (b.getBounds = function () {
        return this._updateText(), this.Container_getBounds();
      }),
      (b.isVisible = function () {
        var a =
          this.cacheCanvas ||
          (this.spriteSheet && this.spriteSheet.complete && this.text);
        return !!(
          this.visible &&
          this.alpha > 0 &&
          0 !== this.scaleX &&
          0 !== this.scaleY &&
          a
        );
      }),
      (b.clone = function () {
        return this._cloneProps(new a(this.text, this.spriteSheet));
      }),
      (b.addChild =
        b.addChildAt =
        b.removeChild =
        b.removeChildAt =
        b.removeAllChildren =
          function () {}),
      (b._cloneProps = function (a) {
        return (
          this.Container__cloneProps(a),
          (a.lineHeight = this.lineHeight),
          (a.letterSpacing = this.letterSpacing),
          (a.spaceWidth = this.spaceWidth),
          a
        );
      }),
      (b._getFrameIndex = function (a, b) {
        var c,
          d = b.getAnimation(a);
        return (
          d ||
            (a != (c = a.toUpperCase()) ||
              a != (c = a.toLowerCase()) ||
              (c = null),
            c && (d = b.getAnimation(c))),
          d && d.frames[0]
        );
      }),
      (b._getFrame = function (a, b) {
        var c = this._getFrameIndex(a, b);
        return null == c ? c : b.getFrame(c);
      }),
      (b._getLineHeight = function (a) {
        var b =
          this._getFrame("1", a) ||
          this._getFrame("T", a) ||
          this._getFrame("L", a) ||
          a.getFrame(0);
        return b ? b.rect.height : 1;
      }),
      (b._getSpaceWidth = function (a) {
        var b =
          this._getFrame("1", a) ||
          this._getFrame("l", a) ||
          this._getFrame("e", a) ||
          this._getFrame("a", a) ||
          a.getFrame(0);
        return b ? b.rect.width : 1;
      }),
      (b._updateText = function () {
        var b,
          c = 0,
          d = 0,
          e = this._oldProps,
          f = !1,
          g = this.spaceWidth,
          h = this.lineHeight,
          i = this.spriteSheet,
          j = a._spritePool,
          k = this.children,
          l = 0,
          m = k.length;
        for (var n in e) e[n] != this[n] && ((e[n] = this[n]), (f = !0));
        if (f) {
          var o = !!this._getFrame(" ", i);
          o || g || (g = this._getSpaceWidth(i)),
            h || (h = this._getLineHeight(i));
          for (var p = 0, q = this.text.length; q > p; p++) {
            var r = this.text.charAt(p);
            if (" " != r || o)
              if ("\n" != r && "\r" != r) {
                var s = this._getFrameIndex(r, i);
                null != s &&
                  (m > l
                    ? (b = k[l])
                    : (k.push((b = j.length ? j.pop() : new createjs.Sprite())),
                      (b.parent = this),
                      m++),
                  (b.spriteSheet = i),
                  b.gotoAndStop(s),
                  (b.x = c),
                  (b.y = d),
                  l++,
                  (c += b.getBounds().width + this.letterSpacing));
              } else
                "\r" == r && "\n" == this.text.charAt(p + 1) && p++,
                  (c = 0),
                  (d += h);
            else c += g;
          }
          for (; m > l; ) j.push((b = k.pop())), (b.parent = null), m--;
          j.length > a.maxPoolSize && (j.length = a.maxPoolSize);
        }
      }),
      (createjs.BitmapText = createjs.promote(a, "Container"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(b, c, d, e) {
      this.Container_constructor(),
        !a.inited && a.init(),
        (this.mode = b || a.INDEPENDENT),
        (this.startPosition = c || 0),
        (this.loop = d),
        (this.currentFrame = 0),
        (this.timeline = new createjs.Timeline(null, e, {
          paused: !0,
          position: c,
          useTicks: !0,
        })),
        (this.paused = !1),
        (this.actionsEnabled = !0),
        (this.autoReset = !0),
        (this.frameBounds = this.frameBounds || null),
        (this.framerate = null),
        (this._synchOffset = 0),
        (this._prevPos = -1),
        (this._prevPosition = 0),
        (this._t = 0),
        (this._managed = {});
    }
    function b() {
      throw "MovieClipPlugin cannot be instantiated.";
    }
    var c = createjs.extend(a, createjs.Container);
    (a.INDEPENDENT = "independent"),
      (a.SINGLE_FRAME = "single"),
      (a.SYNCHED = "synched"),
      (a.inited = !1),
      (a.init = function () {
        a.inited || (b.install(), (a.inited = !0));
      }),
      (c.getLabels = function () {
        return this.timeline.getLabels();
      }),
      (c.getCurrentLabel = function () {
        return this._updateTimeline(), this.timeline.getCurrentLabel();
      }),
      (c.getDuration = function () {
        return this.timeline.duration;
      });
    try {
      Object.defineProperties(c, {
        labels: { get: c.getLabels },
        currentLabel: { get: c.getCurrentLabel },
        totalFrames: { get: c.getDuration },
        duration: { get: c.getDuration },
      });
    } catch (d) {}
    (c.initialize = a),
      (c.isVisible = function () {
        return !!(
          this.visible &&
          this.alpha > 0 &&
          0 != this.scaleX &&
          0 != this.scaleY
        );
      }),
      (c.draw = function (a, b) {
        return this.DisplayObject_draw(a, b)
          ? !0
          : (this._updateTimeline(), this.Container_draw(a, b), !0);
      }),
      (c.play = function () {
        this.paused = !1;
      }),
      (c.stop = function () {
        this.paused = !0;
      }),
      (c.gotoAndPlay = function (a) {
        (this.paused = !1), this._goto(a);
      }),
      (c.gotoAndStop = function (a) {
        (this.paused = !0), this._goto(a);
      }),
      (c.advance = function (b) {
        var c = a.INDEPENDENT;
        if (this.mode == c) {
          for (var d = this, e = d.framerate; (d = d.parent) && null == e; )
            d.mode == c && (e = d._framerate);
          this._framerate = e;
          var f =
              null != e && -1 != e && null != b ? b / (1e3 / e) + this._t : 1,
            g = 0 | f;
          for (this._t = f - g; !this.paused && g--; )
            (this._prevPosition =
              this._prevPos < 0 ? 0 : this._prevPosition + 1),
              this._updateTimeline();
        }
      }),
      (c.clone = function () {
        throw "MovieClip cannot be cloned.";
      }),
      (c.toString = function () {
        return "[MovieClip (name=" + this.name + ")]";
      }),
      (c._tick = function (a) {
        this.advance(a && a.delta), this.Container__tick(a);
      }),
      (c._goto = function (a) {
        var b = this.timeline.resolve(a);
        null != b &&
          (-1 == this._prevPos && (this._prevPos = NaN),
          (this._prevPosition = b),
          (this._t = 0),
          this._updateTimeline());
      }),
      (c._reset = function () {
        (this._prevPos = -1),
          (this._t = this.currentFrame = 0),
          (this.paused = !1);
      }),
      (c._updateTimeline = function () {
        var b = this.timeline,
          c = this.mode != a.INDEPENDENT;
        b.loop = null == this.loop ? !0 : this.loop;
        var d = c
            ? this.startPosition +
              (this.mode == a.SINGLE_FRAME ? 0 : this._synchOffset)
            : this._prevPos < 0
            ? 0
            : this._prevPosition,
          e = c || !this.actionsEnabled ? createjs.Tween.NONE : null;
        if (
          ((this.currentFrame = b._calcPosition(d)),
          b.setPosition(d, e),
          (this._prevPosition = b._prevPosition),
          this._prevPos != b._prevPos)
        ) {
          this.currentFrame = this._prevPos = b._prevPos;
          for (var f in this._managed) this._managed[f] = 1;
          for (var g = b._tweens, h = 0, i = g.length; i > h; h++) {
            var j = g[h],
              k = j._target;
            if (k != this && !j.passive) {
              var l = j._stepPosition;
              k instanceof createjs.DisplayObject
                ? this._addManagedChild(k, l)
                : this._setState(k.state, l);
            }
          }
          var m = this.children;
          for (h = m.length - 1; h >= 0; h--) {
            var n = m[h].id;
            1 == this._managed[n] &&
              (this.removeChildAt(h), delete this._managed[n]);
          }
        }
      }),
      (c._setState = function (a, b) {
        if (a)
          for (var c = a.length - 1; c >= 0; c--) {
            var d = a[c],
              e = d.t,
              f = d.p;
            for (var g in f) e[g] = f[g];
            this._addManagedChild(e, b);
          }
      }),
      (c._addManagedChild = function (b, c) {
        b._off ||
          (this.addChildAt(b, 0),
          b instanceof a &&
            ((b._synchOffset = c),
            b.mode == a.INDEPENDENT &&
              b.autoReset &&
              !this._managed[b.id] &&
              b._reset()),
          (this._managed[b.id] = 2));
      }),
      (c._getBounds = function (a, b) {
        var c = this.DisplayObject_getBounds();
        return (
          c ||
            (this._updateTimeline(),
            this.frameBounds &&
              (c = this._rectangle.copy(this.frameBounds[this.currentFrame]))),
          c ? this._transformBounds(c, a, b) : this.Container__getBounds(a, b)
        );
      }),
      (createjs.MovieClip = createjs.promote(a, "Container")),
      (b.priority = 100),
      (b.install = function () {
        createjs.Tween.installPlugin(b, ["startPosition"]);
      }),
      (b.init = function (a, b, c) {
        return c;
      }),
      (b.step = function () {}),
      (b.tween = function (b, c, d, e, f, g, h, i) {
        return b.target instanceof a ? (1 == g ? f[c] : e[c]) : d;
      });
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      throw "SpriteSheetUtils cannot be instantiated";
    }
    var b = createjs.createCanvas
      ? createjs.createCanvas()
      : document.createElement("canvas");
    b.getContext &&
      ((a._workingCanvas = b),
      (a._workingContext = b.getContext("2d")),
      (b.width = b.height = 1)),
      (a.addFlippedFrames = function (b, c, d, e) {
        if (c || d || e) {
          var f = 0;
          c && a._flip(b, ++f, !0, !1),
            d && a._flip(b, ++f, !1, !0),
            e && a._flip(b, ++f, !0, !0);
        }
      }),
      (a.extractFrame = function (b, c) {
        isNaN(c) && (c = b.getAnimation(c).frames[0]);
        var d = b.getFrame(c);
        if (!d) return null;
        var e = d.rect,
          f = a._workingCanvas;
        (f.width = e.width),
          (f.height = e.height),
          a._workingContext.drawImage(
            d.image,
            e.x,
            e.y,
            e.width,
            e.height,
            0,
            0,
            e.width,
            e.height
          );
        var g = document.createElement("img");
        return (g.src = f.toDataURL("image/png")), g;
      }),
      (a.mergeAlpha = function (a, b, c) {
        c ||
          (c = createjs.createCanvas
            ? createjs.createCanvas()
            : document.createElement("canvas")),
          (c.width = Math.max(b.width, a.width)),
          (c.height = Math.max(b.height, a.height));
        var d = c.getContext("2d");
        return (
          d.save(),
          d.drawImage(a, 0, 0),
          (d.globalCompositeOperation = "destination-in"),
          d.drawImage(b, 0, 0),
          d.restore(),
          c
        );
      }),
      (a._flip = function (b, c, d, e) {
        for (
          var f = b._images,
            g = a._workingCanvas,
            h = a._workingContext,
            i = f.length / c,
            j = 0;
          i > j;
          j++
        ) {
          var k = f[j];
          (k.__tmp = j),
            h.setTransform(1, 0, 0, 1, 0, 0),
            h.clearRect(0, 0, g.width + 1, g.height + 1),
            (g.width = k.width),
            (g.height = k.height),
            h.setTransform(
              d ? -1 : 1,
              0,
              0,
              e ? -1 : 1,
              d ? k.width : 0,
              e ? k.height : 0
            ),
            h.drawImage(k, 0, 0);
          var l = document.createElement("img");
          (l.src = g.toDataURL("image/png")),
            (l.width = k.width),
            (l.height = k.height),
            f.push(l);
        }
        var m = b._frames,
          n = m.length / c;
        for (j = 0; n > j; j++) {
          k = m[j];
          var o = k.rect.clone();
          l = f[k.image.__tmp + i * c];
          var p = { image: l, rect: o, regX: k.regX, regY: k.regY };
          d && ((o.x = l.width - o.x - o.width), (p.regX = o.width - k.regX)),
            e &&
              ((o.y = l.height - o.y - o.height), (p.regY = o.height - k.regY)),
            m.push(p);
        }
        var q = "_" + (d ? "h" : "") + (e ? "v" : ""),
          r = b._animations,
          s = b._data,
          t = r.length / c;
        for (j = 0; t > j; j++) {
          var u = r[j];
          k = s[u];
          var v = { name: u + q, speed: k.speed, next: k.next, frames: [] };
          k.next && (v.next += q), (m = k.frames);
          for (var w = 0, x = m.length; x > w; w++) v.frames.push(m[w] + n * c);
          (s[v.name] = v), r.push(v.name);
        }
      }),
      (createjs.SpriteSheetUtils = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.EventDispatcher_constructor(),
        (this.maxWidth = 2048),
        (this.maxHeight = 2048),
        (this.spriteSheet = null),
        (this.scale = 1),
        (this.padding = 1),
        (this.timeSlice = 0.3),
        (this.progress = -1),
        (this.framerate = a || 0),
        (this._frames = []),
        (this._animations = {}),
        (this._data = null),
        (this._nextFrameIndex = 0),
        (this._index = 0),
        (this._timerID = null),
        (this._scale = 1);
    }
    var b = createjs.extend(a, createjs.EventDispatcher);
    (a.ERR_DIMENSIONS = "frame dimensions exceed max spritesheet dimensions"),
      (a.ERR_RUNNING = "a build is already running"),
      (b.addFrame = function (b, c, d, e, f) {
        if (this._data) throw a.ERR_RUNNING;
        var g = c || b.bounds || b.nominalBounds;
        return (
          !g && b.getBounds && (g = b.getBounds()),
          g
            ? ((d = d || 1),
              this._frames.push({
                source: b,
                sourceRect: g,
                scale: d,
                funct: e,
                data: f,
                index: this._frames.length,
                height: g.height * d,
              }) - 1)
            : null
        );
      }),
      (b.addAnimation = function (b, c, d, e) {
        if (this._data) throw a.ERR_RUNNING;
        this._animations[b] = { frames: c, next: d, speed: e };
      }),
      (b.addMovieClip = function (b, c, d, e, f, g) {
        if (this._data) throw a.ERR_RUNNING;
        var h = b.frameBounds,
          i = c || b.bounds || b.nominalBounds;
        if ((!i && b.getBounds && (i = b.getBounds()), i || h)) {
          var j,
            k,
            l = this._frames.length,
            m = b.timeline.duration;
          for (j = 0; m > j; j++) {
            var n = h && h[j] ? h[j] : i;
            this.addFrame(b, n, d, this._setupMovieClipFrame, {
              i: j,
              f: e,
              d: f,
            });
          }
          var o = b.timeline._labels,
            p = [];
          for (var q in o) p.push({ index: o[q], label: q });
          if (p.length)
            for (
              p.sort(function (a, b) {
                return a.index - b.index;
              }),
                j = 0,
                k = p.length;
              k > j;
              j++
            ) {
              for (
                var r = p[j].label,
                  s = l + p[j].index,
                  t = l + (j == k - 1 ? m : p[j + 1].index),
                  u = [],
                  v = s;
                t > v;
                v++
              )
                u.push(v);
              (!g || (r = g(r, b, s, t))) && this.addAnimation(r, u, !0);
            }
        }
      }),
      (b.build = function () {
        if (this._data) throw a.ERR_RUNNING;
        for (this._startBuild(); this._drawNext(); );
        return this._endBuild(), this.spriteSheet;
      }),
      (b.buildAsync = function (b) {
        if (this._data) throw a.ERR_RUNNING;
        (this.timeSlice = b), this._startBuild();
        var c = this;
        this._timerID = setTimeout(function () {
          c._run();
        }, 50 - 50 * Math.max(0.01, Math.min(0.99, this.timeSlice || 0.3)));
      }),
      (b.stopAsync = function () {
        clearTimeout(this._timerID), (this._data = null);
      }),
      (b.clone = function () {
        throw "SpriteSheetBuilder cannot be cloned.";
      }),
      (b.toString = function () {
        return "[SpriteSheetBuilder]";
      }),
      (b._startBuild = function () {
        var b = this.padding || 0;
        (this.progress = 0),
          (this.spriteSheet = null),
          (this._index = 0),
          (this._scale = this.scale);
        var c = [];
        this._data = {
          images: [],
          frames: c,
          framerate: this.framerate,
          animations: this._animations,
        };
        var d = this._frames.slice();
        if (
          (d.sort(function (a, b) {
            return a.height <= b.height ? -1 : 1;
          }),
          d[d.length - 1].height + 2 * b > this.maxHeight)
        )
          throw a.ERR_DIMENSIONS;
        for (var e = 0, f = 0, g = 0; d.length; ) {
          var h = this._fillRow(d, e, g, c, b);
          if ((h.w > f && (f = h.w), (e += h.h), !h.h || !d.length)) {
            var i = createjs.createCanvas
              ? createjs.createCanvas()
              : document.createElement("canvas");
            (i.width = this._getSize(f, this.maxWidth)),
              (i.height = this._getSize(e, this.maxHeight)),
              (this._data.images[g] = i),
              h.h || ((f = e = 0), g++);
          }
        }
      }),
      (b._setupMovieClipFrame = function (a, b) {
        var c = a.actionsEnabled;
        (a.actionsEnabled = !1),
          a.gotoAndStop(b.i),
          (a.actionsEnabled = c),
          b.f && b.f(a, b.d, b.i);
      }),
      (b._getSize = function (a, b) {
        for (var c = 4; Math.pow(2, ++c) < a; );
        return Math.min(b, Math.pow(2, c));
      }),
      (b._fillRow = function (b, c, d, e, f) {
        var g = this.maxWidth,
          h = this.maxHeight;
        c += f;
        for (var i = h - c, j = f, k = 0, l = b.length - 1; l >= 0; l--) {
          var m = b[l],
            n = this._scale * m.scale,
            o = m.sourceRect,
            p = m.source,
            q = Math.floor(n * o.x - f),
            r = Math.floor(n * o.y - f),
            s = Math.ceil(n * o.height + 2 * f),
            t = Math.ceil(n * o.width + 2 * f);
          if (t > g) throw a.ERR_DIMENSIONS;
          s > i ||
            j + t > g ||
            ((m.img = d),
            (m.rect = new createjs.Rectangle(j, c, t, s)),
            (k = k || s),
            b.splice(l, 1),
            (e[m.index] = [
              j,
              c,
              t,
              s,
              d,
              Math.round(-q + n * p.regX - f),
              Math.round(-r + n * p.regY - f),
            ]),
            (j += t));
        }
        return { w: j, h: k };
      }),
      (b._endBuild = function () {
        (this.spriteSheet = new createjs.SpriteSheet(this._data)),
          (this._data = null),
          (this.progress = 1),
          this.dispatchEvent("complete");
      }),
      (b._run = function () {
        for (
          var a = 50 * Math.max(0.01, Math.min(0.99, this.timeSlice || 0.3)),
            b = new Date().getTime() + a,
            c = !1;
          b > new Date().getTime();

        )
          if (!this._drawNext()) {
            c = !0;
            break;
          }
        if (c) this._endBuild();
        else {
          var d = this;
          this._timerID = setTimeout(function () {
            d._run();
          }, 50 - a);
        }
        var e = (this.progress = this._index / this._frames.length);
        if (this.hasEventListener("progress")) {
          var f = new createjs.Event("progress");
          (f.progress = e), this.dispatchEvent(f);
        }
      }),
      (b._drawNext = function () {
        var a = this._frames[this._index],
          b = a.scale * this._scale,
          c = a.rect,
          d = a.sourceRect,
          e = this._data.images[a.img],
          f = e.getContext("2d");
        return (
          a.funct && a.funct(a.source, a.data),
          f.save(),
          f.beginPath(),
          f.rect(c.x, c.y, c.width, c.height),
          f.clip(),
          f.translate(Math.ceil(c.x - d.x * b), Math.ceil(c.y - d.y * b)),
          f.scale(b, b),
          a.source.draw(f),
          f.restore(),
          ++this._index < this._frames.length
        );
      }),
      (createjs.SpriteSheetBuilder = createjs.promote(a, "EventDispatcher"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.DisplayObject_constructor(),
        "string" == typeof a && (a = document.getElementById(a)),
        (this.mouseEnabled = !1);
      var b = a.style;
      (b.position = "absolute"),
        (b.transformOrigin =
          b.WebkitTransformOrigin =
          b.msTransformOrigin =
          b.MozTransformOrigin =
          b.OTransformOrigin =
            "0% 0%"),
        (this.htmlElement = a),
        (this._oldProps = null);
    }
    var b = createjs.extend(a, createjs.DisplayObject);
    (b.isVisible = function () {
      return null != this.htmlElement;
    }),
      (b.draw = function (a, b) {
        return !0;
      }),
      (b.cache = function () {}),
      (b.uncache = function () {}),
      (b.updateCache = function () {}),
      (b.hitTest = function () {}),
      (b.localToGlobal = function () {}),
      (b.globalToLocal = function () {}),
      (b.localToLocal = function () {}),
      (b.clone = function () {
        throw "DOMElement cannot be cloned.";
      }),
      (b.toString = function () {
        return "[DOMElement (name=" + this.name + ")]";
      }),
      (b._tick = function (a) {
        var b = this.getStage();
        b && b.on("drawend", this._handleDrawEnd, this, !0),
          this.DisplayObject__tick(a);
      }),
      (b._handleDrawEnd = function (a) {
        var b = this.htmlElement;
        if (b) {
          var c = b.style,
            d = this.getConcatenatedDisplayProps(this._props),
            e = d.matrix,
            f = d.visible ? "visible" : "hidden";
          if ((f != c.visibility && (c.visibility = f), d.visible)) {
            var g = this._oldProps,
              h = g && g.matrix,
              i = 1e4;
            if (!h || !h.equals(e)) {
              var j =
                "matrix(" +
                ((e.a * i) | 0) / i +
                "," +
                ((e.b * i) | 0) / i +
                "," +
                ((e.c * i) | 0) / i +
                "," +
                ((e.d * i) | 0) / i +
                "," +
                ((e.tx + 0.5) | 0);
              (c.transform =
                c.WebkitTransform =
                c.OTransform =
                c.msTransform =
                  j + "," + ((e.ty + 0.5) | 0) + ")"),
                (c.MozTransform = j + "px," + ((e.ty + 0.5) | 0) + "px)"),
                g || (g = this._oldProps = new createjs.DisplayProps(!0, NaN)),
                g.matrix.copy(e);
            }
            g.alpha != d.alpha &&
              ((c.opacity = "" + ((d.alpha * i) | 0) / i), (g.alpha = d.alpha));
          }
        }
      }),
      (createjs.DOMElement = createjs.promote(a, "DisplayObject"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {}
    var b = a.prototype;
    (b.getBounds = function (a) {
      return a;
    }),
      (b.applyFilter = function (a, b, c, d, e, f, g, h) {
        (f = f || a), null == g && (g = b), null == h && (h = c);
        try {
          var i = a.getImageData(b, c, d, e);
        } catch (j) {
          return !1;
        }
        return this._applyFilter(i) ? (f.putImageData(i, g, h), !0) : !1;
      }),
      (b.toString = function () {
        return "[Filter]";
      }),
      (b.clone = function () {
        return new a();
      }),
      (b._applyFilter = function (a) {
        return !0;
      }),
      (createjs.Filter = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      (isNaN(a) || 0 > a) && (a = 0),
        (isNaN(b) || 0 > b) && (b = 0),
        (isNaN(c) || 1 > c) && (c = 1),
        (this.blurX = 0 | a),
        (this.blurY = 0 | b),
        (this.quality = 0 | c);
    }
    var b = createjs.extend(a, createjs.Filter);
    (a.MUL_TABLE = [
      1, 171, 205, 293, 57, 373, 79, 137, 241, 27, 391, 357, 41, 19, 283, 265,
      497, 469, 443, 421, 25, 191, 365, 349, 335, 161, 155, 149, 9, 278, 269,
      261, 505, 245, 475, 231, 449, 437, 213, 415, 405, 395, 193, 377, 369, 361,
      353, 345, 169, 331, 325, 319, 313, 307, 301, 37, 145, 285, 281, 69, 271,
      267, 263, 259, 509, 501, 493, 243, 479, 118, 465, 459, 113, 446, 55, 435,
      429, 423, 209, 413, 51, 403, 199, 393, 97, 3, 379, 375, 371, 367, 363,
      359, 355, 351, 347, 43, 85, 337, 333, 165, 327, 323, 5, 317, 157, 311, 77,
      305, 303, 75, 297, 294, 73, 289, 287, 71, 141, 279, 277, 275, 68, 135, 67,
      133, 33, 262, 260, 129, 511, 507, 503, 499, 495, 491, 61, 121, 481, 477,
      237, 235, 467, 232, 115, 457, 227, 451, 7, 445, 221, 439, 218, 433, 215,
      427, 425, 211, 419, 417, 207, 411, 409, 203, 202, 401, 399, 396, 197, 49,
      389, 387, 385, 383, 95, 189, 47, 187, 93, 185, 23, 183, 91, 181, 45, 179,
      89, 177, 11, 175, 87, 173, 345, 343, 341, 339, 337, 21, 167, 83, 331, 329,
      327, 163, 81, 323, 321, 319, 159, 79, 315, 313, 39, 155, 309, 307, 153,
      305, 303, 151, 75, 299, 149, 37, 295, 147, 73, 291, 145, 289, 287, 143,
      285, 71, 141, 281, 35, 279, 139, 69, 275, 137, 273, 17, 271, 135, 269,
      267, 133, 265, 33, 263, 131, 261, 130, 259, 129, 257, 1,
    ]),
      (a.SHG_TABLE = [
        0, 9, 10, 11, 9, 12, 10, 11, 12, 9, 13, 13, 10, 9, 13, 13, 14, 14, 14,
        14, 10, 13, 14, 14, 14, 13, 13, 13, 9, 14, 14, 14, 15, 14, 15, 14, 15,
        15, 14, 15, 15, 15, 14, 15, 15, 15, 15, 15, 14, 15, 15, 15, 15, 15, 15,
        12, 14, 15, 15, 13, 15, 15, 15, 15, 16, 16, 16, 15, 16, 14, 16, 16, 14,
        16, 13, 16, 16, 16, 15, 16, 13, 16, 15, 16, 14, 9, 16, 16, 16, 16, 16,
        16, 16, 16, 16, 13, 14, 16, 16, 15, 16, 16, 10, 16, 15, 16, 14, 16, 16,
        14, 16, 16, 14, 16, 16, 14, 15, 16, 16, 16, 14, 15, 14, 15, 13, 16, 16,
        15, 17, 17, 17, 17, 17, 17, 14, 15, 17, 17, 16, 16, 17, 16, 15, 17, 16,
        17, 11, 17, 16, 17, 16, 17, 16, 17, 17, 16, 17, 17, 16, 17, 17, 16, 16,
        17, 17, 17, 16, 14, 17, 17, 17, 17, 15, 16, 14, 16, 15, 16, 13, 16, 15,
        16, 14, 16, 15, 16, 12, 16, 15, 16, 17, 17, 17, 17, 17, 13, 16, 15, 17,
        17, 17, 16, 15, 17, 17, 17, 16, 15, 17, 17, 14, 16, 17, 17, 16, 17, 17,
        16, 15, 17, 16, 14, 17, 16, 15, 17, 16, 17, 17, 16, 17, 15, 16, 17, 14,
        17, 16, 15, 17, 16, 17, 13, 17, 16, 17, 17, 16, 17, 14, 17, 16, 17, 16,
        17, 16, 17, 9,
      ]),
      (b.getBounds = function (a) {
        var b = 0 | this.blurX,
          c = 0 | this.blurY;
        if (0 >= b && 0 >= c) return a;
        var d = Math.pow(this.quality, 0.2);
        return (a || new createjs.Rectangle()).pad(
          b * d + 1,
          c * d + 1,
          b * d + 1,
          c * d + 1
        );
      }),
      (b.clone = function () {
        return new a(this.blurX, this.blurY, this.quality);
      }),
      (b.toString = function () {
        return "[BlurFilter]";
      }),
      (b._applyFilter = function (b) {
        var c = this.blurX >> 1;
        if (isNaN(c) || 0 > c) return !1;
        var d = this.blurY >> 1;
        if (isNaN(d) || 0 > d) return !1;
        if (0 == c && 0 == d) return !1;
        var e = this.quality;
        (isNaN(e) || 1 > e) && (e = 1),
          (e |= 0),
          e > 3 && (e = 3),
          1 > e && (e = 1);
        var f = b.data,
          g = 0,
          h = 0,
          i = 0,
          j = 0,
          k = 0,
          l = 0,
          m = 0,
          n = 0,
          o = 0,
          p = 0,
          q = 0,
          r = 0,
          s = 0,
          t = 0,
          u = 0,
          v = (c + c + 1) | 0,
          w = (d + d + 1) | 0,
          x = 0 | b.width,
          y = 0 | b.height,
          z = (x - 1) | 0,
          A = (y - 1) | 0,
          B = (c + 1) | 0,
          C = (d + 1) | 0,
          D = { r: 0, b: 0, g: 0, a: 0 },
          E = D;
        for (i = 1; v > i; i++) E = E.n = { r: 0, b: 0, g: 0, a: 0 };
        E.n = D;
        var F = { r: 0, b: 0, g: 0, a: 0 },
          G = F;
        for (i = 1; w > i; i++) G = G.n = { r: 0, b: 0, g: 0, a: 0 };
        G.n = F;
        for (
          var H = null,
            I = 0 | a.MUL_TABLE[c],
            J = 0 | a.SHG_TABLE[c],
            K = 0 | a.MUL_TABLE[d],
            L = 0 | a.SHG_TABLE[d];
          e-- > 0;

        ) {
          m = l = 0;
          var M = I,
            N = J;
          for (h = y; --h > -1; ) {
            for (
              n = B * (r = f[0 | l]),
                o = B * (s = f[(l + 1) | 0]),
                p = B * (t = f[(l + 2) | 0]),
                q = B * (u = f[(l + 3) | 0]),
                E = D,
                i = B;
              --i > -1;

            )
              (E.r = r), (E.g = s), (E.b = t), (E.a = u), (E = E.n);
            for (i = 1; B > i; i++)
              (j = (l + ((i > z ? z : i) << 2)) | 0),
                (n += E.r = f[j]),
                (o += E.g = f[j + 1]),
                (p += E.b = f[j + 2]),
                (q += E.a = f[j + 3]),
                (E = E.n);
            for (H = D, g = 0; x > g; g++)
              (f[l++] = (n * M) >>> N),
                (f[l++] = (o * M) >>> N),
                (f[l++] = (p * M) >>> N),
                (f[l++] = (q * M) >>> N),
                (j = (m + ((j = g + c + 1) < z ? j : z)) << 2),
                (n -= H.r - (H.r = f[j])),
                (o -= H.g - (H.g = f[j + 1])),
                (p -= H.b - (H.b = f[j + 2])),
                (q -= H.a - (H.a = f[j + 3])),
                (H = H.n);
            m += x;
          }
          for (M = K, N = L, g = 0; x > g; g++) {
            for (
              l = (g << 2) | 0,
                n = (C * (r = f[l])) | 0,
                o = (C * (s = f[(l + 1) | 0])) | 0,
                p = (C * (t = f[(l + 2) | 0])) | 0,
                q = (C * (u = f[(l + 3) | 0])) | 0,
                G = F,
                i = 0;
              C > i;
              i++
            )
              (G.r = r), (G.g = s), (G.b = t), (G.a = u), (G = G.n);
            for (k = x, i = 1; d >= i; i++)
              (l = (k + g) << 2),
                (n += G.r = f[l]),
                (o += G.g = f[l + 1]),
                (p += G.b = f[l + 2]),
                (q += G.a = f[l + 3]),
                (G = G.n),
                A > i && (k += x);
            if (((l = g), (H = F), e > 0))
              for (h = 0; y > h; h++)
                (j = l << 2),
                  (f[j + 3] = u = (q * M) >>> N),
                  u > 0
                    ? ((f[j] = (n * M) >>> N),
                      (f[j + 1] = (o * M) >>> N),
                      (f[j + 2] = (p * M) >>> N))
                    : (f[j] = f[j + 1] = f[j + 2] = 0),
                  (j = (g + ((j = h + C) < A ? j : A) * x) << 2),
                  (n -= H.r - (H.r = f[j])),
                  (o -= H.g - (H.g = f[j + 1])),
                  (p -= H.b - (H.b = f[j + 2])),
                  (q -= H.a - (H.a = f[j + 3])),
                  (H = H.n),
                  (l += x);
            else
              for (h = 0; y > h; h++)
                (j = l << 2),
                  (f[j + 3] = u = (q * M) >>> N),
                  u > 0
                    ? ((u = 255 / u),
                      (f[j] = ((n * M) >>> N) * u),
                      (f[j + 1] = ((o * M) >>> N) * u),
                      (f[j + 2] = ((p * M) >>> N) * u))
                    : (f[j] = f[j + 1] = f[j + 2] = 0),
                  (j = (g + ((j = h + C) < A ? j : A) * x) << 2),
                  (n -= H.r - (H.r = f[j])),
                  (o -= H.g - (H.g = f[j + 1])),
                  (p -= H.b - (H.b = f[j + 2])),
                  (q -= H.a - (H.a = f[j + 3])),
                  (H = H.n),
                  (l += x);
          }
        }
        return !0;
      }),
      (createjs.BlurFilter = createjs.promote(a, "Filter"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      (this.alphaMap = a), (this._alphaMap = null), (this._mapData = null);
    }
    var b = createjs.extend(a, createjs.Filter);
    (b.clone = function () {
      var b = new a(this.alphaMap);
      return (b._alphaMap = this._alphaMap), (b._mapData = this._mapData), b;
    }),
      (b.toString = function () {
        return "[AlphaMapFilter]";
      }),
      (b._applyFilter = function (a) {
        if (!this.alphaMap) return !0;
        if (!this._prepAlphaMap()) return !1;
        for (
          var b = a.data, c = this._mapData, d = 0, e = b.length;
          e > d;
          d += 4
        )
          b[d + 3] = c[d] || 0;
        return !0;
      }),
      (b._prepAlphaMap = function () {
        if (!this.alphaMap) return !1;
        if (this.alphaMap == this._alphaMap && this._mapData) return !0;
        this._mapData = null;
        var a,
          b = (this._alphaMap = this.alphaMap),
          c = b;
        b instanceof HTMLCanvasElement
          ? (a = c.getContext("2d"))
          : ((c = createjs.createCanvas
              ? createjs.createCanvas()
              : document.createElement("canvas")),
            (c.width = b.width),
            (c.height = b.height),
            (a = c.getContext("2d")),
            a.drawImage(b, 0, 0));
        try {
          var d = a.getImageData(0, 0, b.width, b.height);
        } catch (e) {
          return !1;
        }
        return (this._mapData = d.data), !0;
      }),
      (createjs.AlphaMapFilter = createjs.promote(a, "Filter"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.mask = a;
    }
    var b = createjs.extend(a, createjs.Filter);
    (b.applyFilter = function (a, b, c, d, e, f, g, h) {
      return this.mask
        ? ((f = f || a),
          null == g && (g = b),
          null == h && (h = c),
          f.save(),
          a != f
            ? !1
            : ((f.globalCompositeOperation = "destination-in"),
              f.drawImage(this.mask, g, h),
              f.restore(),
              !0))
        : !0;
    }),
      (b.clone = function () {
        return new a(this.mask);
      }),
      (b.toString = function () {
        return "[AlphaMaskFilter]";
      }),
      (createjs.AlphaMaskFilter = createjs.promote(a, "Filter"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c, d, e, f, g, h) {
      (this.redMultiplier = null != a ? a : 1),
        (this.greenMultiplier = null != b ? b : 1),
        (this.blueMultiplier = null != c ? c : 1),
        (this.alphaMultiplier = null != d ? d : 1),
        (this.redOffset = e || 0),
        (this.greenOffset = f || 0),
        (this.blueOffset = g || 0),
        (this.alphaOffset = h || 0);
    }
    var b = createjs.extend(a, createjs.Filter);
    (b.toString = function () {
      return "[ColorFilter]";
    }),
      (b.clone = function () {
        return new a(
          this.redMultiplier,
          this.greenMultiplier,
          this.blueMultiplier,
          this.alphaMultiplier,
          this.redOffset,
          this.greenOffset,
          this.blueOffset,
          this.alphaOffset
        );
      }),
      (b._applyFilter = function (a) {
        for (var b = a.data, c = b.length, d = 0; c > d; d += 4)
          (b[d] = b[d] * this.redMultiplier + this.redOffset),
            (b[d + 1] = b[d + 1] * this.greenMultiplier + this.greenOffset),
            (b[d + 2] = b[d + 2] * this.blueMultiplier + this.blueOffset),
            (b[d + 3] = b[d + 3] * this.alphaMultiplier + this.alphaOffset);
        return !0;
      }),
      (createjs.ColorFilter = createjs.promote(a, "Filter"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c, d) {
      this.setColor(a, b, c, d);
    }
    var b = a.prototype;
    (a.DELTA_INDEX = [
      0, 0.01, 0.02, 0.04, 0.05, 0.06, 0.07, 0.08, 0.1, 0.11, 0.12, 0.14, 0.15,
      0.16, 0.17, 0.18, 0.2, 0.21, 0.22, 0.24, 0.25, 0.27, 0.28, 0.3, 0.32,
      0.34, 0.36, 0.38, 0.4, 0.42, 0.44, 0.46, 0.48, 0.5, 0.53, 0.56, 0.59,
      0.62, 0.65, 0.68, 0.71, 0.74, 0.77, 0.8, 0.83, 0.86, 0.89, 0.92, 0.95,
      0.98, 1, 1.06, 1.12, 1.18, 1.24, 1.3, 1.36, 1.42, 1.48, 1.54, 1.6, 1.66,
      1.72, 1.78, 1.84, 1.9, 1.96, 2, 2.12, 2.25, 2.37, 2.5, 2.62, 2.75, 2.87,
      3, 3.2, 3.4, 3.6, 3.8, 4, 4.3, 4.7, 4.9, 5, 5.5, 6, 6.5, 6.8, 7, 7.3, 7.5,
      7.8, 8, 8.4, 8.7, 9, 9.4, 9.6, 9.8, 10,
    ]),
      (a.IDENTITY_MATRIX = [
        1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
        1,
      ]),
      (a.LENGTH = a.IDENTITY_MATRIX.length),
      (b.setColor = function (a, b, c, d) {
        return this.reset().adjustColor(a, b, c, d);
      }),
      (b.reset = function () {
        return this.copy(a.IDENTITY_MATRIX);
      }),
      (b.adjustColor = function (a, b, c, d) {
        return (
          this.adjustHue(d),
          this.adjustContrast(b),
          this.adjustBrightness(a),
          this.adjustSaturation(c)
        );
      }),
      (b.adjustBrightness = function (a) {
        return 0 == a || isNaN(a)
          ? this
          : ((a = this._cleanValue(a, 255)),
            this._multiplyMatrix([
              1,
              0,
              0,
              0,
              a,
              0,
              1,
              0,
              0,
              a,
              0,
              0,
              1,
              0,
              a,
              0,
              0,
              0,
              1,
              0,
              0,
              0,
              0,
              0,
              1,
            ]),
            this);
      }),
      (b.adjustContrast = function (b) {
        if (0 == b || isNaN(b)) return this;
        b = this._cleanValue(b, 100);
        var c;
        return (
          0 > b
            ? (c = 127 + (b / 100) * 127)
            : ((c = b % 1),
              (c =
                0 == c
                  ? a.DELTA_INDEX[b]
                  : a.DELTA_INDEX[b << 0] * (1 - c) +
                    a.DELTA_INDEX[(b << 0) + 1] * c),
              (c = 127 * c + 127)),
          this._multiplyMatrix([
            c / 127,
            0,
            0,
            0,
            0.5 * (127 - c),
            0,
            c / 127,
            0,
            0,
            0.5 * (127 - c),
            0,
            0,
            c / 127,
            0,
            0.5 * (127 - c),
            0,
            0,
            0,
            1,
            0,
            0,
            0,
            0,
            0,
            1,
          ]),
          this
        );
      }),
      (b.adjustSaturation = function (a) {
        if (0 == a || isNaN(a)) return this;
        a = this._cleanValue(a, 100);
        var b = 1 + (a > 0 ? (3 * a) / 100 : a / 100),
          c = 0.3086,
          d = 0.6094,
          e = 0.082;
        return (
          this._multiplyMatrix([
            c * (1 - b) + b,
            d * (1 - b),
            e * (1 - b),
            0,
            0,
            c * (1 - b),
            d * (1 - b) + b,
            e * (1 - b),
            0,
            0,
            c * (1 - b),
            d * (1 - b),
            e * (1 - b) + b,
            0,
            0,
            0,
            0,
            0,
            1,
            0,
            0,
            0,
            0,
            0,
            1,
          ]),
          this
        );
      }),
      (b.adjustHue = function (a) {
        if (0 == a || isNaN(a)) return this;
        a = (this._cleanValue(a, 180) / 180) * Math.PI;
        var b = Math.cos(a),
          c = Math.sin(a),
          d = 0.213,
          e = 0.715,
          f = 0.072;
        return (
          this._multiplyMatrix([
            d + b * (1 - d) + c * -d,
            e + b * -e + c * -e,
            f + b * -f + c * (1 - f),
            0,
            0,
            d + b * -d + 0.143 * c,
            e + b * (1 - e) + 0.14 * c,
            f + b * -f + c * -0.283,
            0,
            0,
            d + b * -d + c * -(1 - d),
            e + b * -e + c * e,
            f + b * (1 - f) + c * f,
            0,
            0,
            0,
            0,
            0,
            1,
            0,
            0,
            0,
            0,
            0,
            1,
          ]),
          this
        );
      }),
      (b.concat = function (b) {
        return (
          (b = this._fixMatrix(b)),
          b.length != a.LENGTH ? this : (this._multiplyMatrix(b), this)
        );
      }),
      (b.clone = function () {
        return new a().copy(this);
      }),
      (b.toArray = function () {
        for (var b = [], c = 0, d = a.LENGTH; d > c; c++) b[c] = this[c];
        return b;
      }),
      (b.copy = function (b) {
        for (var c = a.LENGTH, d = 0; c > d; d++) this[d] = b[d];
        return this;
      }),
      (b.toString = function () {
        return "[ColorMatrix]";
      }),
      (b._multiplyMatrix = function (a) {
        var b,
          c,
          d,
          e = [];
        for (b = 0; 5 > b; b++) {
          for (c = 0; 5 > c; c++) e[c] = this[c + 5 * b];
          for (c = 0; 5 > c; c++) {
            var f = 0;
            for (d = 0; 5 > d; d++) f += a[c + 5 * d] * e[d];
            this[c + 5 * b] = f;
          }
        }
      }),
      (b._cleanValue = function (a, b) {
        return Math.min(b, Math.max(-b, a));
      }),
      (b._fixMatrix = function (b) {
        return (
          b instanceof a && (b = b.toArray()),
          b.length < a.LENGTH
            ? (b = b
                .slice(0, b.length)
                .concat(a.IDENTITY_MATRIX.slice(b.length, a.LENGTH)))
            : b.length > a.LENGTH && (b = b.slice(0, a.LENGTH)),
          b
        );
      }),
      (createjs.ColorMatrix = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.matrix = a;
    }
    var b = createjs.extend(a, createjs.Filter);
    (b.toString = function () {
      return "[ColorMatrixFilter]";
    }),
      (b.clone = function () {
        return new a(this.matrix);
      }),
      (b._applyFilter = function (a) {
        for (
          var b,
            c,
            d,
            e,
            f = a.data,
            g = f.length,
            h = this.matrix,
            i = h[0],
            j = h[1],
            k = h[2],
            l = h[3],
            m = h[4],
            n = h[5],
            o = h[6],
            p = h[7],
            q = h[8],
            r = h[9],
            s = h[10],
            t = h[11],
            u = h[12],
            v = h[13],
            w = h[14],
            x = h[15],
            y = h[16],
            z = h[17],
            A = h[18],
            B = h[19],
            C = 0;
          g > C;
          C += 4
        )
          (b = f[C]),
            (c = f[C + 1]),
            (d = f[C + 2]),
            (e = f[C + 3]),
            (f[C] = b * i + c * j + d * k + e * l + m),
            (f[C + 1] = b * n + c * o + d * p + e * q + r),
            (f[C + 2] = b * s + c * t + d * u + e * v + w),
            (f[C + 3] = b * x + c * y + d * z + e * A + B);
        return !0;
      }),
      (createjs.ColorMatrixFilter = createjs.promote(a, "Filter"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      throw "Touch cannot be instantiated";
    }
    (a.isSupported = function () {
      return !!(
        "ontouchstart" in window ||
        (window.navigator.msPointerEnabled &&
          window.navigator.msMaxTouchPoints > 0) ||
        (window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 0)
      );
    }),
      (a.enable = function (b, c, d) {
        return b && b.canvas && a.isSupported()
          ? b.__touch
            ? !0
            : ((b.__touch = {
                pointers: {},
                multitouch: !c,
                preventDefault: !d,
                count: 0,
              }),
              "ontouchstart" in window
                ? a._IOS_enable(b)
                : (window.navigator.msPointerEnabled ||
                    window.navigator.pointerEnabled) &&
                  a._IE_enable(b),
              !0)
          : !1;
      }),
      (a.disable = function (b) {
        b &&
          ("ontouchstart" in window
            ? a._IOS_disable(b)
            : (window.navigator.msPointerEnabled ||
                window.navigator.pointerEnabled) &&
              a._IE_disable(b),
          delete b.__touch);
      }),
      (a._IOS_enable = function (b) {
        var c = b.canvas,
          d = (b.__touch.f = function (c) {
            a._IOS_handleEvent(b, c);
          });
        c.addEventListener("touchstart", d, !1),
          c.addEventListener("touchmove", d, !1),
          c.addEventListener("touchend", d, !1),
          c.addEventListener("touchcancel", d, !1);
      }),
      (a._IOS_disable = function (a) {
        var b = a.canvas;
        if (b) {
          var c = a.__touch.f;
          b.removeEventListener("touchstart", c, !1),
            b.removeEventListener("touchmove", c, !1),
            b.removeEventListener("touchend", c, !1),
            b.removeEventListener("touchcancel", c, !1);
        }
      }),
      (a._IOS_handleEvent = function (a, b) {
        if (a) {
          a.__touch.preventDefault && b.preventDefault && b.preventDefault();
          for (
            var c = b.changedTouches, d = b.type, e = 0, f = c.length;
            f > e;
            e++
          ) {
            var g = c[e],
              h = g.identifier;
            g.target == a.canvas &&
              ("touchstart" == d
                ? this._handleStart(a, h, b, g.pageX, g.pageY)
                : "touchmove" == d
                ? this._handleMove(a, h, b, g.pageX, g.pageY)
                : ("touchend" == d || "touchcancel" == d) &&
                  this._handleEnd(a, h, b));
          }
        }
      }),
      (a._IE_enable = function (b) {
        var c = b.canvas,
          d = (b.__touch.f = function (c) {
            a._IE_handleEvent(b, c);
          });
        void 0 === window.navigator.pointerEnabled
          ? (c.addEventListener("MSPointerDown", d, !1),
            window.addEventListener("MSPointerMove", d, !1),
            window.addEventListener("MSPointerUp", d, !1),
            window.addEventListener("MSPointerCancel", d, !1),
            b.__touch.preventDefault && (c.style.msTouchAction = "none"))
          : (c.addEventListener("pointerdown", d, !1),
            window.addEventListener("pointermove", d, !1),
            window.addEventListener("pointerup", d, !1),
            window.addEventListener("pointercancel", d, !1),
            b.__touch.preventDefault && (c.style.touchAction = "none")),
          (b.__touch.activeIDs = {});
      }),
      (a._IE_disable = function (a) {
        var b = a.__touch.f;
        void 0 === window.navigator.pointerEnabled
          ? (window.removeEventListener("MSPointerMove", b, !1),
            window.removeEventListener("MSPointerUp", b, !1),
            window.removeEventListener("MSPointerCancel", b, !1),
            a.canvas && a.canvas.removeEventListener("MSPointerDown", b, !1))
          : (window.removeEventListener("pointermove", b, !1),
            window.removeEventListener("pointerup", b, !1),
            window.removeEventListener("pointercancel", b, !1),
            a.canvas && a.canvas.removeEventListener("pointerdown", b, !1));
      }),
      (a._IE_handleEvent = function (a, b) {
        if (a) {
          a.__touch.preventDefault && b.preventDefault && b.preventDefault();
          var c = b.type,
            d = b.pointerId,
            e = a.__touch.activeIDs;
          if ("MSPointerDown" == c || "pointerdown" == c) {
            if (b.srcElement != a.canvas) return;
            (e[d] = !0), this._handleStart(a, d, b, b.pageX, b.pageY);
          } else
            e[d] &&
              ("MSPointerMove" == c || "pointermove" == c
                ? this._handleMove(a, d, b, b.pageX, b.pageY)
                : ("MSPointerUp" == c ||
                    "MSPointerCancel" == c ||
                    "pointerup" == c ||
                    "pointercancel" == c) &&
                  (delete e[d], this._handleEnd(a, d, b)));
        }
      }),
      (a._handleStart = function (a, b, c, d, e) {
        var f = a.__touch;
        if (f.multitouch || !f.count) {
          var g = f.pointers;
          g[b] || ((g[b] = !0), f.count++, a._handlePointerDown(b, c, d, e));
        }
      }),
      (a._handleMove = function (a, b, c, d, e) {
        a.__touch.pointers[b] && a._handlePointerMove(b, c, d, e);
      }),
      (a._handleEnd = function (a, b, c) {
        var d = a.__touch,
          e = d.pointers;
        e[b] && (d.count--, a._handlePointerUp(b, c, !0), delete e[b]);
      }),
      (createjs.Touch = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    var a = (createjs.EaselJS = createjs.EaselJS || {});
    (a.version = "0.8.2"), (a.buildDate = "Thu, 26 Nov 2015 20:44:34 GMT");
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    var a = (createjs.PreloadJS = createjs.PreloadJS || {});
    (a.version = "0.6.2"), (a.buildDate = "Thu, 26 Nov 2015 20:44:31 GMT");
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    createjs.proxy = function (a, b) {
      var c = Array.prototype.slice.call(arguments, 2);
      return function () {
        return a.apply(b, Array.prototype.slice.call(arguments, 0).concat(c));
      };
    };
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      this.Event_constructor("error"),
        (this.title = a),
        (this.message = b),
        (this.data = c);
    }
    var b = createjs.extend(a, createjs.Event);
    (b.clone = function () {
      return new createjs.ErrorEvent(this.title, this.message, this.data);
    }),
      (createjs.ErrorEvent = createjs.promote(a, "Event"));
  })(),
  (this.createjs = this.createjs || {}),
  (function (a) {
    "use strict";
    function b(a, b) {
      this.Event_constructor("progress"),
        (this.loaded = a),
        (this.total = null == b ? 1 : b),
        (this.progress = 0 == b ? 0 : this.loaded / this.total);
    }
    var c = createjs.extend(b, createjs.Event);
    (c.clone = function () {
      return new createjs.ProgressEvent(this.loaded, this.total);
    }),
      (createjs.ProgressEvent = createjs.promote(b, "Event"));
  })(window),
  function () {
    function a(b, d) {
      function f(a) {
        if (f[a] !== q) return f[a];
        var b;
        if ("bug-string-char-index" == a) b = "a" != "a"[0];
        else if ("json" == a) b = f("json-stringify") && f("json-parse");
        else {
          var c,
            e = '{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';
          if ("json-stringify" == a) {
            var i = d.stringify,
              k = "function" == typeof i && t;
            if (k) {
              (c = function () {
                return 1;
              }).toJSON = c;
              try {
                k =
                  "0" === i(0) &&
                  "0" === i(new g()) &&
                  '""' == i(new h()) &&
                  i(s) === q &&
                  i(q) === q &&
                  i() === q &&
                  "1" === i(c) &&
                  "[1]" == i([c]) &&
                  "[null]" == i([q]) &&
                  "null" == i(null) &&
                  "[null,null,null]" == i([q, s, null]) &&
                  i({ a: [c, !0, !1, null, "\x00\b\n\f\r	"] }) == e &&
                  "1" === i(null, c) &&
                  "[\n 1,\n 2\n]" == i([1, 2], null, 1) &&
                  '"-271821-04-20T00:00:00.000Z"' == i(new j(-864e13)) &&
                  '"+275760-09-13T00:00:00.000Z"' == i(new j(864e13)) &&
                  '"-000001-01-01T00:00:00.000Z"' == i(new j(-621987552e5)) &&
                  '"1969-12-31T23:59:59.999Z"' == i(new j(-1));
              } catch (l) {
                k = !1;
              }
            }
            b = k;
          }
          if ("json-parse" == a) {
            var m = d.parse;
            if ("function" == typeof m)
              try {
                if (0 === m("0") && !m(!1)) {
                  c = m(e);
                  var n = 5 == c.a.length && 1 === c.a[0];
                  if (n) {
                    try {
                      n = !m('"	"');
                    } catch (l) {}
                    if (n)
                      try {
                        n = 1 !== m("01");
                      } catch (l) {}
                    if (n)
                      try {
                        n = 1 !== m("1.");
                      } catch (l) {}
                  }
                }
              } catch (l) {
                n = !1;
              }
            b = n;
          }
        }
        return (f[a] = !!b);
      }
      b || (b = e.Object()), d || (d = e.Object());
      var g = b.Number || e.Number,
        h = b.String || e.String,
        i = b.Object || e.Object,
        j = b.Date || e.Date,
        k = b.SyntaxError || e.SyntaxError,
        l = b.TypeError || e.TypeError,
        m = b.Math || e.Math,
        n = b.JSON || e.JSON;
      "object" == typeof n &&
        n &&
        ((d.stringify = n.stringify), (d.parse = n.parse));
      var o,
        p,
        q,
        r = i.prototype,
        s = r.toString,
        t = new j(-0xc782b5b800cec);
      try {
        t =
          -109252 == t.getUTCFullYear() &&
          0 === t.getUTCMonth() &&
          1 === t.getUTCDate() &&
          10 == t.getUTCHours() &&
          37 == t.getUTCMinutes() &&
          6 == t.getUTCSeconds() &&
          708 == t.getUTCMilliseconds();
      } catch (u) {}
      if (!f("json")) {
        var v = "[object Function]",
          w = "[object Date]",
          x = "[object Number]",
          y = "[object String]",
          z = "[object Array]",
          A = "[object Boolean]",
          B = f("bug-string-char-index");
        if (!t)
          var C = m.floor,
            D = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],
            E = function (a, b) {
              return (
                D[b] +
                365 * (a - 1970) +
                C((a - 1969 + (b = +(b > 1))) / 4) -
                C((a - 1901 + b) / 100) +
                C((a - 1601 + b) / 400)
              );
            };
        if (
          ((o = r.hasOwnProperty) ||
            (o = function (a) {
              var b,
                c = {};
              return (
                ((c.__proto__ = null), (c.__proto__ = { toString: 1 }), c)
                  .toString != s
                  ? (o = function (a) {
                      var b = this.__proto__,
                        c = a in ((this.__proto__ = null), this);
                      return (this.__proto__ = b), c;
                    })
                  : ((b = c.constructor),
                    (o = function (a) {
                      var c = (this.constructor || b).prototype;
                      return a in this && !(a in c && this[a] === c[a]);
                    })),
                (c = null),
                o.call(this, a)
              );
            }),
          (p = function (a, b) {
            var d,
              e,
              f,
              g = 0;
            ((d = function () {
              this.valueOf = 0;
            }).prototype.valueOf = 0),
              (e = new d());
            for (f in e) o.call(e, f) && g++;
            return (
              (d = e = null),
              g
                ? (p =
                    2 == g
                      ? function (a, b) {
                          var c,
                            d = {},
                            e = s.call(a) == v;
                          for (c in a)
                            (e && "prototype" == c) ||
                              o.call(d, c) ||
                              !(d[c] = 1) ||
                              !o.call(a, c) ||
                              b(c);
                        }
                      : function (a, b) {
                          var c,
                            d,
                            e = s.call(a) == v;
                          for (c in a)
                            (e && "prototype" == c) ||
                              !o.call(a, c) ||
                              (d = "constructor" === c) ||
                              b(c);
                          (d || o.call(a, (c = "constructor"))) && b(c);
                        })
                : ((e = [
                    "valueOf",
                    "toString",
                    "toLocaleString",
                    "propertyIsEnumerable",
                    "isPrototypeOf",
                    "hasOwnProperty",
                    "constructor",
                  ]),
                  (p = function (a, b) {
                    var d,
                      f,
                      g = s.call(a) == v,
                      h =
                        (!g &&
                          "function" != typeof a.constructor &&
                          c[typeof a.hasOwnProperty] &&
                          a.hasOwnProperty) ||
                        o;
                    for (d in a)
                      (g && "prototype" == d) || !h.call(a, d) || b(d);
                    for (f = e.length; (d = e[--f]); h.call(a, d) && b(d));
                  })),
              p(a, b)
            );
          }),
          !f("json-stringify"))
        ) {
          var F = {
              92: "\\\\",
              34: '\\"',
              8: "\\b",
              12: "\\f",
              10: "\\n",
              13: "\\r",
              9: "\\t",
            },
            G = "000000",
            H = function (a, b) {
              return (G + (b || 0)).slice(-a);
            },
            I = "\\u00",
            J = function (a) {
              for (
                var b = '"',
                  c = 0,
                  d = a.length,
                  e = !B || d > 10,
                  f = e && (B ? a.split("") : a);
                d > c;
                c++
              ) {
                var g = a.charCodeAt(c);
                switch (g) {
                  case 8:
                  case 9:
                  case 10:
                  case 12:
                  case 13:
                  case 34:
                  case 92:
                    b += F[g];
                    break;
                  default:
                    if (32 > g) {
                      b += I + H(2, g.toString(16));
                      break;
                    }
                    b += e ? f[c] : a.charAt(c);
                }
              }
              return b + '"';
            },
            K = function (a, b, c, d, e, f, g) {
              var h, i, j, k, m, n, r, t, u, v, B, D, F, G, I, L;
              try {
                h = b[a];
              } catch (M) {}
              if ("object" == typeof h && h)
                if (((i = s.call(h)), i != w || o.call(h, "toJSON")))
                  "function" == typeof h.toJSON &&
                    ((i != x && i != y && i != z) || o.call(h, "toJSON")) &&
                    (h = h.toJSON(a));
                else if (h > -1 / 0 && 1 / 0 > h) {
                  if (E) {
                    for (
                      m = C(h / 864e5), j = C(m / 365.2425) + 1970 - 1;
                      E(j + 1, 0) <= m;
                      j++
                    );
                    for (k = C((m - E(j, 0)) / 30.42); E(j, k + 1) <= m; k++);
                    (m = 1 + m - E(j, k)),
                      (n = ((h % 864e5) + 864e5) % 864e5),
                      (r = C(n / 36e5) % 24),
                      (t = C(n / 6e4) % 60),
                      (u = C(n / 1e3) % 60),
                      (v = n % 1e3);
                  } else
                    (j = h.getUTCFullYear()),
                      (k = h.getUTCMonth()),
                      (m = h.getUTCDate()),
                      (r = h.getUTCHours()),
                      (t = h.getUTCMinutes()),
                      (u = h.getUTCSeconds()),
                      (v = h.getUTCMilliseconds());
                  h =
                    (0 >= j || j >= 1e4
                      ? (0 > j ? "-" : "+") + H(6, 0 > j ? -j : j)
                      : H(4, j)) +
                    "-" +
                    H(2, k + 1) +
                    "-" +
                    H(2, m) +
                    "T" +
                    H(2, r) +
                    ":" +
                    H(2, t) +
                    ":" +
                    H(2, u) +
                    "." +
                    H(3, v) +
                    "Z";
                } else h = null;
              if ((c && (h = c.call(b, a, h)), null === h)) return "null";
              if (((i = s.call(h)), i == A)) return "" + h;
              if (i == x) return h > -1 / 0 && 1 / 0 > h ? "" + h : "null";
              if (i == y) return J("" + h);
              if ("object" == typeof h) {
                for (G = g.length; G--; ) if (g[G] === h) throw l();
                if ((g.push(h), (B = []), (I = f), (f += e), i == z)) {
                  for (F = 0, G = h.length; G > F; F++)
                    (D = K(F, h, c, d, e, f, g)), B.push(D === q ? "null" : D);
                  L = B.length
                    ? e
                      ? "[\n" + f + B.join(",\n" + f) + "\n" + I + "]"
                      : "[" + B.join(",") + "]"
                    : "[]";
                } else
                  p(d || h, function (a) {
                    var b = K(a, h, c, d, e, f, g);
                    b !== q && B.push(J(a) + ":" + (e ? " " : "") + b);
                  }),
                    (L = B.length
                      ? e
                        ? "{\n" + f + B.join(",\n" + f) + "\n" + I + "}"
                        : "{" + B.join(",") + "}"
                      : "{}");
                return g.pop(), L;
              }
            };
          d.stringify = function (a, b, d) {
            var e, f, g, h;
            if (c[typeof b] && b)
              if ((h = s.call(b)) == v) f = b;
              else if (h == z) {
                g = {};
                for (
                  var i, j = 0, k = b.length;
                  k > j;
                  i = b[j++], h = s.call(i), (h == y || h == x) && (g[i] = 1)
                );
              }
            if (d)
              if ((h = s.call(d)) == x) {
                if ((d -= d % 1) > 0)
                  for (e = "", d > 10 && (d = 10); e.length < d; e += " ");
              } else h == y && (e = d.length <= 10 ? d : d.slice(0, 10));
            return K("", ((i = {}), (i[""] = a), i), f, g, e, "", []);
          };
        }
        if (!f("json-parse")) {
          var L,
            M,
            N = h.fromCharCode,
            O = {
              92: "\\",
              34: '"',
              47: "/",
              98: "\b",
              116: "	",
              110: "\n",
              102: "\f",
              114: "\r",
            },
            P = function () {
              throw ((L = M = null), k());
            },
            Q = function () {
              for (var a, b, c, d, e, f = M, g = f.length; g > L; )
                switch ((e = f.charCodeAt(L))) {
                  case 9:
                  case 10:
                  case 13:
                  case 32:
                    L++;
                    break;
                  case 123:
                  case 125:
                  case 91:
                  case 93:
                  case 58:
                  case 44:
                    return (a = B ? f.charAt(L) : f[L]), L++, a;
                  case 34:
                    for (a = "@", L++; g > L; )
                      if (((e = f.charCodeAt(L)), 32 > e)) P();
                      else if (92 == e)
                        switch ((e = f.charCodeAt(++L))) {
                          case 92:
                          case 34:
                          case 47:
                          case 98:
                          case 116:
                          case 110:
                          case 102:
                          case 114:
                            (a += O[e]), L++;
                            break;
                          case 117:
                            for (b = ++L, c = L + 4; c > L; L++)
                              (e = f.charCodeAt(L)),
                                (e >= 48 && 57 >= e) ||
                                  (e >= 97 && 102 >= e) ||
                                  (e >= 65 && 70 >= e) ||
                                  P();
                            a += N("0x" + f.slice(b, L));
                            break;
                          default:
                            P();
                        }
                      else {
                        if (34 == e) break;
                        for (
                          e = f.charCodeAt(L), b = L;
                          e >= 32 && 92 != e && 34 != e;

                        )
                          e = f.charCodeAt(++L);
                        a += f.slice(b, L);
                      }
                    if (34 == f.charCodeAt(L)) return L++, a;
                    P();
                  default:
                    if (
                      ((b = L),
                      45 == e && ((d = !0), (e = f.charCodeAt(++L))),
                      e >= 48 && 57 >= e)
                    ) {
                      for (
                        48 == e &&
                          ((e = f.charCodeAt(L + 1)), e >= 48 && 57 >= e) &&
                          P(),
                          d = !1;
                        g > L && ((e = f.charCodeAt(L)), e >= 48 && 57 >= e);
                        L++
                      );
                      if (46 == f.charCodeAt(L)) {
                        for (
                          c = ++L;
                          g > c && ((e = f.charCodeAt(c)), e >= 48 && 57 >= e);
                          c++
                        );
                        c == L && P(), (L = c);
                      }
                      if (((e = f.charCodeAt(L)), 101 == e || 69 == e)) {
                        for (
                          e = f.charCodeAt(++L),
                            (43 == e || 45 == e) && L++,
                            c = L;
                          g > c && ((e = f.charCodeAt(c)), e >= 48 && 57 >= e);
                          c++
                        );
                        c == L && P(), (L = c);
                      }
                      return +f.slice(b, L);
                    }
                    if ((d && P(), "true" == f.slice(L, L + 4)))
                      return (L += 4), !0;
                    if ("false" == f.slice(L, L + 5)) return (L += 5), !1;
                    if ("null" == f.slice(L, L + 4)) return (L += 4), null;
                    P();
                }
              return "$";
            },
            R = function (a) {
              var b, c;
              if (("$" == a && P(), "string" == typeof a)) {
                if ("@" == (B ? a.charAt(0) : a[0])) return a.slice(1);
                if ("[" == a) {
                  for (b = []; (a = Q()), "]" != a; c || (c = !0))
                    c && ("," == a ? ((a = Q()), "]" == a && P()) : P()),
                      "," == a && P(),
                      b.push(R(a));
                  return b;
                }
                if ("{" == a) {
                  for (b = {}; (a = Q()), "}" != a; c || (c = !0))
                    c && ("," == a ? ((a = Q()), "}" == a && P()) : P()),
                      ("," == a ||
                        "string" != typeof a ||
                        "@" != (B ? a.charAt(0) : a[0]) ||
                        ":" != Q()) &&
                        P(),
                      (b[a.slice(1)] = R(Q()));
                  return b;
                }
                P();
              }
              return a;
            },
            S = function (a, b, c) {
              var d = T(a, b, c);
              d === q ? delete a[b] : (a[b] = d);
            },
            T = function (a, b, c) {
              var d,
                e = a[b];
              if ("object" == typeof e && e)
                if (s.call(e) == z) for (d = e.length; d--; ) S(e, d, c);
                else
                  p(e, function (a) {
                    S(e, a, c);
                  });
              return c.call(a, b, e);
            };
          d.parse = function (a, b) {
            var c, d;
            return (
              (L = 0),
              (M = "" + a),
              (c = R(Q())),
              "$" != Q() && P(),
              (L = M = null),
              b && s.call(b) == v ? T(((d = {}), (d[""] = c), d), "", b) : c
            );
          };
        }
      }
      return (d.runInContext = a), d;
    }
    var b = "function" == typeof define && define.amd,
      c = { function: !0, object: !0 },
      d = c[typeof exports] && exports && !exports.nodeType && exports,
      e = (c[typeof window] && window) || this,
      f =
        d &&
        c[typeof module] &&
        module &&
        !module.nodeType &&
        "object" == typeof global &&
        global;
    if (
      (!f || (f.global !== f && f.window !== f && f.self !== f) || (e = f),
      d && !b)
    )
      a(e, d);
    else {
      var g = e.JSON,
        h = e.JSON3,
        i = !1,
        j = a(
          e,
          (e.JSON3 = {
            noConflict: function () {
              return (
                i || ((i = !0), (e.JSON = g), (e.JSON3 = h), (g = h = null)), j
              );
            },
          })
        );
      e.JSON = { parse: j.parse, stringify: j.stringify };
    }
    b &&
      define(function () {
        return j;
      });
  }.call(this),
  (function () {
    var a = {};
    (a.appendToHead = function (b) {
      a.getHead().appendChild(b);
    }),
      (a.getHead = function () {
        return document.head || document.getElementsByTagName("head")[0];
      }),
      (a.getBody = function () {
        return document.body || document.getElementsByTagName("body")[0];
      }),
      (createjs.DomUtils = a);
  })(),
  (function () {
    var a = {};
    (a.parseXML = function (a, b) {
      var c = null;
      try {
        if (window.DOMParser) {
          var d = new DOMParser();
          c = d.parseFromString(a, b);
        }
      } catch (e) {}
      if (!c)
        try {
          (c = new ActiveXObject("Microsoft.XMLDOM")),
            (c.async = !1),
            c.loadXML(a);
        } catch (e) {
          c = null;
        }
      return c;
    }),
      (a.parseJSON = function (a) {
        if (null == a) return null;
        try {
          return JSON.parse(a);
        } catch (b) {
          throw b;
        }
      }),
      (createjs.DataUtils = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      (this.src = null),
        (this.type = null),
        (this.id = null),
        (this.maintainOrder = !1),
        (this.callback = null),
        (this.data = null),
        (this.method = createjs.LoadItem.GET),
        (this.values = null),
        (this.headers = null),
        (this.withCredentials = !1),
        (this.mimeType = null),
        (this.crossOrigin = null),
        (this.loadTimeout = c.LOAD_TIMEOUT_DEFAULT);
    }
    var b = (a.prototype = {}),
      c = a;
    (c.LOAD_TIMEOUT_DEFAULT = 8e3),
      (c.create = function (b) {
        if ("string" == typeof b) {
          var d = new a();
          return (d.src = b), d;
        }
        if (b instanceof c) return b;
        if (b instanceof Object && b.src)
          return (
            null == b.loadTimeout && (b.loadTimeout = c.LOAD_TIMEOUT_DEFAULT), b
          );
        throw new Error("Type not recognized.");
      }),
      (b.set = function (a) {
        for (var b in a) this[b] = a[b];
        return this;
      }),
      (createjs.LoadItem = c);
  })(),
  (function () {
    var a = {};
    (a.ABSOLUTE_PATT = /^(?:\w+:)?\/{2}/i),
      (a.RELATIVE_PATT = /^[.\/]*?\//i),
      (a.EXTENSION_PATT = /\/?[^\/]+\.(\w{1,5})$/i),
      (a.parseURI = function (b) {
        var c = { absolute: !1, relative: !1 };
        if (null == b) return c;
        var d = b.indexOf("?");
        d > -1 && (b = b.substr(0, d));
        var e;
        return (
          a.ABSOLUTE_PATT.test(b)
            ? (c.absolute = !0)
            : a.RELATIVE_PATT.test(b) && (c.relative = !0),
          (e = b.match(a.EXTENSION_PATT)) && (c.extension = e[1].toLowerCase()),
          c
        );
      }),
      (a.formatQueryString = function (a, b) {
        if (null == a) throw new Error("You must specify data.");
        var c = [];
        for (var d in a) c.push(d + "=" + escape(a[d]));
        return b && (c = c.concat(b)), c.join("&");
      }),
      (a.buildPath = function (a, b) {
        if (null == b) return a;
        var c = [],
          d = a.indexOf("?");
        if (-1 != d) {
          var e = a.slice(d + 1);
          c = c.concat(e.split("&"));
        }
        return -1 != d
          ? a.slice(0, d) + "?" + this.formatQueryString(b, c)
          : a + "?" + this.formatQueryString(b, c);
      }),
      (a.isCrossDomain = function (a) {
        var b = document.createElement("a");
        b.href = a.src;
        var c = document.createElement("a");
        c.href = location.href;
        var d =
          "" != b.hostname &&
          (b.port != c.port ||
            b.protocol != c.protocol ||
            b.hostname != c.hostname);
        return d;
      }),
      (a.isLocal = function (a) {
        var b = document.createElement("a");
        return (b.href = a.src), "" == b.hostname && "file:" == b.protocol;
      }),
      (a.isBinary = function (a) {
        switch (a) {
          case createjs.AbstractLoader.IMAGE:
          case createjs.AbstractLoader.BINARY:
            return !0;
          default:
            return !1;
        }
      }),
      (a.isImageTag = function (a) {
        return a instanceof HTMLImageElement;
      }),
      (a.isAudioTag = function (a) {
        return window.HTMLAudioElement ? a instanceof HTMLAudioElement : !1;
      }),
      (a.isVideoTag = function (a) {
        return window.HTMLVideoElement ? a instanceof HTMLVideoElement : !1;
      }),
      (a.isText = function (a) {
        switch (a) {
          case createjs.AbstractLoader.TEXT:
          case createjs.AbstractLoader.JSON:
          case createjs.AbstractLoader.MANIFEST:
          case createjs.AbstractLoader.XML:
          case createjs.AbstractLoader.CSS:
          case createjs.AbstractLoader.SVG:
          case createjs.AbstractLoader.JAVASCRIPT:
          case createjs.AbstractLoader.SPRITESHEET:
            return !0;
          default:
            return !1;
        }
      }),
      (a.getTypeByExtension = function (a) {
        if (null == a) return createjs.AbstractLoader.TEXT;
        switch (a.toLowerCase()) {
          case "jpeg":
          case "jpg":
          case "gif":
          case "png":
          case "webp":
          case "bmp":
            return createjs.AbstractLoader.IMAGE;
          case "ogg":
          case "mp3":
          case "webm":
            return createjs.AbstractLoader.SOUND;
          case "mp4":
          case "webm":
          case "ts":
            return createjs.AbstractLoader.VIDEO;
          case "json":
            return createjs.AbstractLoader.JSON;
          case "xml":
            return createjs.AbstractLoader.XML;
          case "css":
            return createjs.AbstractLoader.CSS;
          case "js":
            return createjs.AbstractLoader.JAVASCRIPT;
          case "svg":
            return createjs.AbstractLoader.SVG;
          default:
            return createjs.AbstractLoader.TEXT;
        }
      }),
      (createjs.RequestUtils = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      this.EventDispatcher_constructor(),
        (this.loaded = !1),
        (this.canceled = !1),
        (this.progress = 0),
        (this.type = c),
        (this.resultFormatter = null),
        a ? (this._item = createjs.LoadItem.create(a)) : (this._item = null),
        (this._preferXHR = b),
        (this._result = null),
        (this._rawResult = null),
        (this._loadedItems = null),
        (this._tagSrcAttribute = null),
        (this._tag = null);
    }
    var b = createjs.extend(a, createjs.EventDispatcher),
      c = a;
    (c.POST = "POST"),
      (c.GET = "GET"),
      (c.BINARY = "binary"),
      (c.CSS = "css"),
      (c.IMAGE = "image"),
      (c.JAVASCRIPT = "javascript"),
      (c.JSON = "json"),
      (c.JSONP = "jsonp"),
      (c.MANIFEST = "manifest"),
      (c.SOUND = "sound"),
      (c.VIDEO = "video"),
      (c.SPRITESHEET = "spritesheet"),
      (c.SVG = "svg"),
      (c.TEXT = "text"),
      (c.XML = "xml"),
      (b.getItem = function () {
        return this._item;
      }),
      (b.getResult = function (a) {
        return a ? this._rawResult : this._result;
      }),
      (b.getTag = function () {
        return this._tag;
      }),
      (b.setTag = function (a) {
        this._tag = a;
      }),
      (b.load = function () {
        this._createRequest(),
          this._request.on("complete", this, this),
          this._request.on("progress", this, this),
          this._request.on("loadStart", this, this),
          this._request.on("abort", this, this),
          this._request.on("timeout", this, this),
          this._request.on("error", this, this);
        var a = new createjs.Event("initialize");
        (a.loader = this._request), this.dispatchEvent(a), this._request.load();
      }),
      (b.cancel = function () {
        (this.canceled = !0), this.destroy();
      }),
      (b.destroy = function () {
        this._request &&
          (this._request.removeAllEventListeners(), this._request.destroy()),
          (this._request = null),
          (this._item = null),
          (this._rawResult = null),
          (this._result = null),
          (this._loadItems = null),
          this.removeAllEventListeners();
      }),
      (b.getLoadedItems = function () {
        return this._loadedItems;
      }),
      (b._createRequest = function () {
        this._preferXHR
          ? (this._request = new createjs.XHRRequest(this._item))
          : (this._request = new createjs.TagRequest(
              this._item,
              this._tag || this._createTag(),
              this._tagSrcAttribute
            ));
      }),
      (b._createTag = function (a) {
        return null;
      }),
      (b._sendLoadStart = function () {
        this._isCanceled() || this.dispatchEvent("loadstart");
      }),
      (b._sendProgress = function (a) {
        if (!this._isCanceled()) {
          var b = null;
          "number" == typeof a
            ? ((this.progress = a),
              (b = new createjs.ProgressEvent(this.progress)))
            : ((b = a),
              (this.progress = a.loaded / a.total),
              (b.progress = this.progress),
              (isNaN(this.progress) || this.progress == 1 / 0) &&
                (this.progress = 0)),
            this.hasEventListener("progress") && this.dispatchEvent(b);
        }
      }),
      (b._sendComplete = function () {
        if (!this._isCanceled()) {
          this.loaded = !0;
          var a = new createjs.Event("complete");
          (a.rawResult = this._rawResult),
            null != this._result && (a.result = this._result),
            this.dispatchEvent(a);
        }
      }),
      (b._sendError = function (a) {
        !this._isCanceled() &&
          this.hasEventListener("error") &&
          (null == a && (a = new createjs.ErrorEvent("PRELOAD_ERROR_EMPTY")),
          this.dispatchEvent(a));
      }),
      (b._isCanceled = function () {
        return null == window.createjs || this.canceled ? !0 : !1;
      }),
      (b.resultFormatter = null),
      (b.handleEvent = function (a) {
        switch (a.type) {
          case "complete":
            this._rawResult = a.target._response;
            var b = this.resultFormatter && this.resultFormatter(this);
            b instanceof Function
              ? b.call(
                  this,
                  createjs.proxy(this._resultFormatSuccess, this),
                  createjs.proxy(this._resultFormatFailed, this)
                )
              : ((this._result = b || this._rawResult), this._sendComplete());
            break;
          case "progress":
            this._sendProgress(a);
            break;
          case "error":
            this._sendError(a);
            break;
          case "loadstart":
            this._sendLoadStart();
            break;
          case "abort":
          case "timeout":
            this._isCanceled() ||
              this.dispatchEvent(
                new createjs.ErrorEvent(
                  "PRELOAD_" + a.type.toUpperCase() + "_ERROR"
                )
              );
        }
      }),
      (b._resultFormatSuccess = function (a) {
        (this._result = a), this._sendComplete();
      }),
      (b._resultFormatFailed = function (a) {
        this._sendError(a);
      }),
      (b.buildPath = function (a, b) {
        return createjs.RequestUtils.buildPath(a, b);
      }),
      (b.toString = function () {
        return "[PreloadJS AbstractLoader]";
      }),
      (createjs.AbstractLoader = createjs.promote(a, "EventDispatcher"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      this.AbstractLoader_constructor(a, b, c),
        (this.resultFormatter = this._formatResult),
        (this._tagSrcAttribute = "src"),
        this.on("initialize", this._updateXHR, this);
    }
    var b = createjs.extend(a, createjs.AbstractLoader);
    (b.load = function () {
      this._tag || (this._tag = this._createTag(this._item.src)),
        (this._tag.preload = "auto"),
        this._tag.load(),
        this.AbstractLoader_load();
    }),
      (b._createTag = function () {}),
      (b._createRequest = function () {
        this._preferXHR
          ? (this._request = new createjs.XHRRequest(this._item))
          : (this._request = new createjs.MediaTagRequest(
              this._item,
              this._tag || this._createTag(),
              this._tagSrcAttribute
            ));
      }),
      (b._updateXHR = function (a) {
        a.loader.setResponseType && a.loader.setResponseType("blob");
      }),
      (b._formatResult = function (a) {
        if (
          (this._tag.removeEventListener &&
            this._tag.removeEventListener(
              "canplaythrough",
              this._loadedHandler
            ),
          (this._tag.onstalled = null),
          this._preferXHR)
        ) {
          var b = window.URL || window.webkitURL,
            c = a.getResult(!0);
          a.getTag().src = b.createObjectURL(c);
        }
        return a.getTag();
      }),
      (createjs.AbstractMediaLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    var a = function (a) {
        this._item = a;
      },
      b = createjs.extend(a, createjs.EventDispatcher);
    (b.load = function () {}),
      (b.destroy = function () {}),
      (b.cancel = function () {}),
      (createjs.AbstractRequest = createjs.promote(a, "EventDispatcher"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      this.AbstractRequest_constructor(a),
        (this._tag = b),
        (this._tagSrcAttribute = c),
        (this._loadedHandler = createjs.proxy(this._handleTagComplete, this)),
        (this._addedToDOM = !1),
        (this._startTagVisibility = null);
    }
    var b = createjs.extend(a, createjs.AbstractRequest);
    (b.load = function () {
      (this._tag.onload = createjs.proxy(this._handleTagComplete, this)),
        (this._tag.onreadystatechange = createjs.proxy(
          this._handleReadyStateChange,
          this
        )),
        (this._tag.onerror = createjs.proxy(this._handleError, this));
      var a = new createjs.Event("initialize");
      (a.loader = this._tag),
        this.dispatchEvent(a),
        this._hideTag(),
        (this._loadTimeout = setTimeout(
          createjs.proxy(this._handleTimeout, this),
          this._item.loadTimeout
        )),
        (this._tag[this._tagSrcAttribute] = this._item.src),
        null == this._tag.parentNode &&
          (window.document.body.appendChild(this._tag),
          (this._addedToDOM = !0));
    }),
      (b.destroy = function () {
        this._clean(), (this._tag = null), this.AbstractRequest_destroy();
      }),
      (b._handleReadyStateChange = function () {
        clearTimeout(this._loadTimeout);
        var a = this._tag;
        ("loaded" == a.readyState || "complete" == a.readyState) &&
          this._handleTagComplete();
      }),
      (b._handleError = function () {
        this._clean(), this.dispatchEvent("error");
      }),
      (b._handleTagComplete = function () {
        (this._rawResult = this._tag),
          (this._result =
            (this.resultFormatter && this.resultFormatter(this)) ||
            this._rawResult),
          this._clean(),
          this._showTag(),
          this.dispatchEvent("complete");
      }),
      (b._handleTimeout = function () {
        this._clean(), this.dispatchEvent(new createjs.Event("timeout"));
      }),
      (b._clean = function () {
        (this._tag.onload = null),
          (this._tag.onreadystatechange = null),
          (this._tag.onerror = null),
          this._addedToDOM &&
            null != this._tag.parentNode &&
            this._tag.parentNode.removeChild(this._tag),
          clearTimeout(this._loadTimeout);
      }),
      (b._hideTag = function () {
        (this._startTagVisibility = this._tag.style.visibility),
          (this._tag.style.visibility = "hidden");
      }),
      (b._showTag = function () {
        this._tag.style.visibility = this._startTagVisibility;
      }),
      (b._handleStalled = function () {}),
      (createjs.TagRequest = createjs.promote(a, "AbstractRequest"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      this.AbstractRequest_constructor(a),
        (this._tag = b),
        (this._tagSrcAttribute = c),
        (this._loadedHandler = createjs.proxy(this._handleTagComplete, this));
    }
    var b = createjs.extend(a, createjs.TagRequest);
    (b.load = function () {
      var a = createjs.proxy(this._handleStalled, this);
      this._stalledCallback = a;
      var b = createjs.proxy(this._handleProgress, this);
      (this._handleProgress = b),
        this._tag.addEventListener("stalled", a),
        this._tag.addEventListener("progress", b),
        this._tag.addEventListener &&
          this._tag.addEventListener("canplaythrough", this._loadedHandler, !1),
        this.TagRequest_load();
    }),
      (b._handleReadyStateChange = function () {
        clearTimeout(this._loadTimeout);
        var a = this._tag;
        ("loaded" == a.readyState || "complete" == a.readyState) &&
          this._handleTagComplete();
      }),
      (b._handleStalled = function () {}),
      (b._handleProgress = function (a) {
        if (a && !(a.loaded > 0 && 0 == a.total)) {
          var b = new createjs.ProgressEvent(a.loaded, a.total);
          this.dispatchEvent(b);
        }
      }),
      (b._clean = function () {
        this._tag.removeEventListener &&
          this._tag.removeEventListener("canplaythrough", this._loadedHandler),
          this._tag.removeEventListener("stalled", this._stalledCallback),
          this._tag.removeEventListener("progress", this._progressCallback),
          this.TagRequest__clean();
      }),
      (createjs.MediaTagRequest = createjs.promote(a, "TagRequest"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.AbstractRequest_constructor(a),
        (this._request = null),
        (this._loadTimeout = null),
        (this._xhrLevel = 1),
        (this._response = null),
        (this._rawResponse = null),
        (this._canceled = !1),
        (this._handleLoadStartProxy = createjs.proxy(
          this._handleLoadStart,
          this
        )),
        (this._handleProgressProxy = createjs.proxy(
          this._handleProgress,
          this
        )),
        (this._handleAbortProxy = createjs.proxy(this._handleAbort, this)),
        (this._handleErrorProxy = createjs.proxy(this._handleError, this)),
        (this._handleTimeoutProxy = createjs.proxy(this._handleTimeout, this)),
        (this._handleLoadProxy = createjs.proxy(this._handleLoad, this)),
        (this._handleReadyStateChangeProxy = createjs.proxy(
          this._handleReadyStateChange,
          this
        )),
        !this._createXHR(a);
    }
    var b = createjs.extend(a, createjs.AbstractRequest);
    (a.ACTIVEX_VERSIONS = [
      "Msxml2.XMLHTTP.6.0",
      "Msxml2.XMLHTTP.5.0",
      "Msxml2.XMLHTTP.4.0",
      "MSXML2.XMLHTTP.3.0",
      "MSXML2.XMLHTTP",
      "Microsoft.XMLHTTP",
    ]),
      (b.getResult = function (a) {
        return a && this._rawResponse ? this._rawResponse : this._response;
      }),
      (b.cancel = function () {
        (this.canceled = !0), this._clean(), this._request.abort();
      }),
      (b.load = function () {
        if (null == this._request) return void this._handleError();
        null != this._request.addEventListener
          ? (this._request.addEventListener(
              "loadstart",
              this._handleLoadStartProxy,
              !1
            ),
            this._request.addEventListener(
              "progress",
              this._handleProgressProxy,
              !1
            ),
            this._request.addEventListener("abort", this._handleAbortProxy, !1),
            this._request.addEventListener("error", this._handleErrorProxy, !1),
            this._request.addEventListener(
              "timeout",
              this._handleTimeoutProxy,
              !1
            ),
            this._request.addEventListener("load", this._handleLoadProxy, !1),
            this._request.addEventListener(
              "readystatechange",
              this._handleReadyStateChangeProxy,
              !1
            ))
          : ((this._request.onloadstart = this._handleLoadStartProxy),
            (this._request.onprogress = this._handleProgressProxy),
            (this._request.onabort = this._handleAbortProxy),
            (this._request.onerror = this._handleErrorProxy),
            (this._request.ontimeout = this._handleTimeoutProxy),
            (this._request.onload = this._handleLoadProxy),
            (this._request.onreadystatechange =
              this._handleReadyStateChangeProxy)),
          1 == this._xhrLevel &&
            (this._loadTimeout = setTimeout(
              createjs.proxy(this._handleTimeout, this),
              this._item.loadTimeout
            ));
        try {
          this._item.values && this._item.method != createjs.AbstractLoader.GET
            ? this._item.method == createjs.AbstractLoader.POST &&
              this._request.send(
                createjs.RequestUtils.formatQueryString(this._item.values)
              )
            : this._request.send();
        } catch (a) {
          this.dispatchEvent(new createjs.ErrorEvent("XHR_SEND", null, a));
        }
      }),
      (b.setResponseType = function (a) {
        "blob" === a &&
          ((a = window.URL ? "blob" : "arraybuffer"), (this._responseType = a)),
          (this._request.responseType = a);
      }),
      (b.getAllResponseHeaders = function () {
        return this._request.getAllResponseHeaders instanceof Function
          ? this._request.getAllResponseHeaders()
          : null;
      }),
      (b.getResponseHeader = function (a) {
        return this._request.getResponseHeader instanceof Function
          ? this._request.getResponseHeader(a)
          : null;
      }),
      (b._handleProgress = function (a) {
        if (a && !(a.loaded > 0 && 0 == a.total)) {
          var b = new createjs.ProgressEvent(a.loaded, a.total);
          this.dispatchEvent(b);
        }
      }),
      (b._handleLoadStart = function (a) {
        clearTimeout(this._loadTimeout), this.dispatchEvent("loadstart");
      }),
      (b._handleAbort = function (a) {
        this._clean(),
          this.dispatchEvent(new createjs.ErrorEvent("XHR_ABORTED", null, a));
      }),
      (b._handleError = function (a) {
        this._clean(), this.dispatchEvent(new createjs.ErrorEvent(a.message));
      }),
      (b._handleReadyStateChange = function (a) {
        4 == this._request.readyState && this._handleLoad();
      }),
      (b._handleLoad = function (a) {
        if (!this.loaded) {
          this.loaded = !0;
          var b = this._checkError();
          if (b) return void this._handleError(b);
          if (
            ((this._response = this._getResponse()),
            "arraybuffer" === this._responseType)
          )
            try {
              this._response = new Blob([this._response]);
            } catch (c) {
              if (
                ((window.BlobBuilder =
                  window.BlobBuilder ||
                  window.WebKitBlobBuilder ||
                  window.MozBlobBuilder ||
                  window.MSBlobBuilder),
                "TypeError" === c.name && window.BlobBuilder)
              ) {
                var d = new BlobBuilder();
                d.append(this._response), (this._response = d.getBlob());
              }
            }
          this._clean(), this.dispatchEvent(new createjs.Event("complete"));
        }
      }),
      (b._handleTimeout = function (a) {
        this._clean(),
          this.dispatchEvent(
            new createjs.ErrorEvent("PRELOAD_TIMEOUT", null, a)
          );
      }),
      (b._checkError = function () {
        var a = parseInt(this._request.status);
        switch (a) {
          case 404:
          case 0:
            return new Error(a);
        }
        return null;
      }),
      (b._getResponse = function () {
        if (null != this._response) return this._response;
        if (null != this._request.response) return this._request.response;
        try {
          if (null != this._request.responseText)
            return this._request.responseText;
        } catch (a) {}
        try {
          if (null != this._request.responseXML)
            return this._request.responseXML;
        } catch (a) {}
        return null;
      }),
      (b._createXHR = function (a) {
        var b = createjs.RequestUtils.isCrossDomain(a),
          c = {},
          d = null;
        if (window.XMLHttpRequest)
          (d = new XMLHttpRequest()),
            b &&
              void 0 === d.withCredentials &&
              window.XDomainRequest &&
              (d = new XDomainRequest());
        else {
          for (var e = 0, f = s.ACTIVEX_VERSIONS.length; f > e; e++) {
            var g = s.ACTIVEX_VERSIONS[e];
            try {
              d = new ActiveXObject(g);
              break;
            } catch (h) {}
          }
          if (null == d) return !1;
        }
        null == a.mimeType &&
          createjs.RequestUtils.isText(a.type) &&
          (a.mimeType = "text/plain; charset=utf-8"),
          a.mimeType && d.overrideMimeType && d.overrideMimeType(a.mimeType),
          (this._xhrLevel = "string" == typeof d.responseType ? 2 : 1);
        var i = null;
        if (
          ((i =
            a.method == createjs.AbstractLoader.GET
              ? createjs.RequestUtils.buildPath(a.src, a.values)
              : a.src),
          d.open(a.method || createjs.AbstractLoader.GET, i, !0),
          b &&
            d instanceof XMLHttpRequest &&
            1 == this._xhrLevel &&
            (c.Origin = location.origin),
          a.values &&
            a.method == createjs.AbstractLoader.POST &&
            (c["Content-Type"] = "application/x-www-form-urlencoded"),
          b ||
            c["X-Requested-With"] ||
            (c["X-Requested-With"] = "XMLHttpRequest"),
          a.headers)
        )
          for (var j in a.headers) c[j] = a.headers[j];
        for (j in c) d.setRequestHeader(j, c[j]);
        return (
          d instanceof XMLHttpRequest &&
            void 0 !== a.withCredentials &&
            (d.withCredentials = a.withCredentials),
          (this._request = d),
          !0
        );
      }),
      (b._clean = function () {
        clearTimeout(this._loadTimeout),
          null != this._request.removeEventListener
            ? (this._request.removeEventListener(
                "loadstart",
                this._handleLoadStartProxy
              ),
              this._request.removeEventListener(
                "progress",
                this._handleProgressProxy
              ),
              this._request.removeEventListener(
                "abort",
                this._handleAbortProxy
              ),
              this._request.removeEventListener(
                "error",
                this._handleErrorProxy
              ),
              this._request.removeEventListener(
                "timeout",
                this._handleTimeoutProxy
              ),
              this._request.removeEventListener("load", this._handleLoadProxy),
              this._request.removeEventListener(
                "readystatechange",
                this._handleReadyStateChangeProxy
              ))
            : ((this._request.onloadstart = null),
              (this._request.onprogress = null),
              (this._request.onabort = null),
              (this._request.onerror = null),
              (this._request.ontimeout = null),
              (this._request.onload = null),
              (this._request.onreadystatechange = null));
      }),
      (b.toString = function () {
        return "[PreloadJS XHRRequest]";
      }),
      (createjs.XHRRequest = createjs.promote(a, "AbstractRequest"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      this.AbstractLoader_constructor(),
        (this._plugins = []),
        (this._typeCallbacks = {}),
        (this._extensionCallbacks = {}),
        (this.next = null),
        (this.maintainScriptOrder = !0),
        (this.stopOnError = !1),
        (this._maxConnections = 1),
        (this._availableLoaders = [
          createjs.ImageLoader,
          createjs.JavaScriptLoader,
          createjs.CSSLoader,
          createjs.JSONLoader,
          createjs.JSONPLoader,
          createjs.SoundLoader,
          createjs.ManifestLoader,
          createjs.SpriteSheetLoader,
          createjs.XMLLoader,
          createjs.SVGLoader,
          createjs.BinaryLoader,
          createjs.VideoLoader,
          createjs.TextLoader,
        ]),
        (this._defaultLoaderLength = this._availableLoaders.length),
        this.init(a, b, c);
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (b.init = function (a, b, c) {
      (this.useXHR = !0),
        (this.preferXHR = !0),
        (this._preferXHR = !0),
        this.setPreferXHR(a),
        (this._paused = !1),
        (this._basePath = b),
        (this._crossOrigin = c),
        (this._loadStartWasDispatched = !1),
        (this._currentlyLoadingScript = null),
        (this._currentLoads = []),
        (this._loadQueue = []),
        (this._loadQueueBackup = []),
        (this._loadItemsById = {}),
        (this._loadItemsBySrc = {}),
        (this._loadedResults = {}),
        (this._loadedRawResults = {}),
        (this._numItems = 0),
        (this._numItemsLoaded = 0),
        (this._scriptOrder = []),
        (this._loadedScripts = []),
        (this._lastProgress = NaN);
    }),
      (c.loadTimeout = 8e3),
      (c.LOAD_TIMEOUT = 0),
      (c.BINARY = createjs.AbstractLoader.BINARY),
      (c.CSS = createjs.AbstractLoader.CSS),
      (c.IMAGE = createjs.AbstractLoader.IMAGE),
      (c.JAVASCRIPT = createjs.AbstractLoader.JAVASCRIPT),
      (c.JSON = createjs.AbstractLoader.JSON),
      (c.JSONP = createjs.AbstractLoader.JSONP),
      (c.MANIFEST = createjs.AbstractLoader.MANIFEST),
      (c.SOUND = createjs.AbstractLoader.SOUND),
      (c.VIDEO = createjs.AbstractLoader.VIDEO),
      (c.SVG = createjs.AbstractLoader.SVG),
      (c.TEXT = createjs.AbstractLoader.TEXT),
      (c.XML = createjs.AbstractLoader.XML),
      (c.POST = createjs.AbstractLoader.POST),
      (c.GET = createjs.AbstractLoader.GET),
      (b.registerLoader = function (a) {
        if (!a || !a.canLoadItem)
          throw new Error("loader is of an incorrect type.");
        if (-1 != this._availableLoaders.indexOf(a))
          throw new Error("loader already exists.");
        this._availableLoaders.unshift(a);
      }),
      (b.unregisterLoader = function (a) {
        var b = this._availableLoaders.indexOf(a);
        -1 != b &&
          b < this._defaultLoaderLength - 1 &&
          this._availableLoaders.splice(b, 1);
      }),
      (b.setUseXHR = function (a) {
        return this.setPreferXHR(a);
      }),
      (b.setPreferXHR = function (a) {
        return (
          (this.preferXHR = 0 != a && null != window.XMLHttpRequest),
          this.preferXHR
        );
      }),
      (b.removeAll = function () {
        this.remove();
      }),
      (b.remove = function (a) {
        var b = null;
        if (a && !Array.isArray(a)) b = [a];
        else if (a) b = a;
        else if (arguments.length > 0) return;
        var c = !1;
        if (b) {
          for (; b.length; ) {
            var d = b.pop(),
              e = this.getResult(d);
            for (f = this._loadQueue.length - 1; f >= 0; f--)
              if (
                ((g = this._loadQueue[f].getItem()), g.id == d || g.src == d)
              ) {
                this._loadQueue.splice(f, 1)[0].cancel();
                break;
              }
            for (f = this._loadQueueBackup.length - 1; f >= 0; f--)
              if (
                ((g = this._loadQueueBackup[f].getItem()),
                g.id == d || g.src == d)
              ) {
                this._loadQueueBackup.splice(f, 1)[0].cancel();
                break;
              }
            if (e) this._disposeItem(this.getItem(d));
            else
              for (var f = this._currentLoads.length - 1; f >= 0; f--) {
                var g = this._currentLoads[f].getItem();
                if (g.id == d || g.src == d) {
                  this._currentLoads.splice(f, 1)[0].cancel(), (c = !0);
                  break;
                }
              }
          }
          c && this._loadNext();
        } else {
          this.close();
          for (var h in this._loadItemsById)
            this._disposeItem(this._loadItemsById[h]);
          this.init(this.preferXHR, this._basePath);
        }
      }),
      (b.reset = function () {
        this.close();
        for (var a in this._loadItemsById)
          this._disposeItem(this._loadItemsById[a]);
        for (var b = [], c = 0, d = this._loadQueueBackup.length; d > c; c++)
          b.push(this._loadQueueBackup[c].getItem());
        this.loadManifest(b, !1);
      }),
      (b.installPlugin = function (a) {
        if (null != a && null != a.getPreloadHandlers) {
          this._plugins.push(a);
          var b = a.getPreloadHandlers();
          if (((b.scope = a), null != b.types))
            for (var c = 0, d = b.types.length; d > c; c++)
              this._typeCallbacks[b.types[c]] = b;
          if (null != b.extensions)
            for (c = 0, d = b.extensions.length; d > c; c++)
              this._extensionCallbacks[b.extensions[c]] = b;
        }
      }),
      (b.setMaxConnections = function (a) {
        (this._maxConnections = a),
          !this._paused && this._loadQueue.length > 0 && this._loadNext();
      }),
      (b.loadFile = function (a, b, c) {
        if (null == a) {
          var d = new createjs.ErrorEvent("PRELOAD_NO_FILE");
          return void this._sendError(d);
        }
        this._addItem(a, null, c),
          b !== !1 ? this.setPaused(!1) : this.setPaused(!0);
      }),
      (b.loadManifest = function (a, b, d) {
        var e = null,
          f = null;
        if (Array.isArray(a)) {
          if (0 == a.length) {
            var g = new createjs.ErrorEvent("PRELOAD_MANIFEST_EMPTY");
            return void this._sendError(g);
          }
          e = a;
        } else if ("string" == typeof a) e = [{ src: a, type: c.MANIFEST }];
        else {
          if ("object" != typeof a) {
            var g = new createjs.ErrorEvent("PRELOAD_MANIFEST_NULL");
            return void this._sendError(g);
          }
          if (void 0 !== a.src) {
            if (null == a.type) a.type = c.MANIFEST;
            else if (a.type != c.MANIFEST) {
              var g = new createjs.ErrorEvent("PRELOAD_MANIFEST_TYPE");
              this._sendError(g);
            }
            e = [a];
          } else void 0 !== a.manifest && ((e = a.manifest), (f = a.path));
        }
        for (var h = 0, i = e.length; i > h; h++) this._addItem(e[h], f, d);
        b !== !1 ? this.setPaused(!1) : this.setPaused(!0);
      }),
      (b.load = function () {
        this.setPaused(!1);
      }),
      (b.getItem = function (a) {
        return this._loadItemsById[a] || this._loadItemsBySrc[a];
      }),
      (b.getResult = function (a, b) {
        var c = this._loadItemsById[a] || this._loadItemsBySrc[a];
        if (null == c) return null;
        var d = c.id;
        return b && this._loadedRawResults[d]
          ? this._loadedRawResults[d]
          : this._loadedResults[d];
      }),
      (b.getItems = function (a) {
        var b = [];
        for (var c in this._loadItemsById) {
          var d = this._loadItemsById[c],
            e = this.getResult(c);
          (a !== !0 || null != e) &&
            b.push({ item: d, result: e, rawResult: this.getResult(c, !0) });
        }
        return b;
      }),
      (b.setPaused = function (a) {
        (this._paused = a), this._paused || this._loadNext();
      }),
      (b.close = function () {
        for (; this._currentLoads.length; ) this._currentLoads.pop().cancel();
        (this._scriptOrder.length = 0),
          (this._loadedScripts.length = 0),
          (this.loadStartWasDispatched = !1),
          (this._itemCount = 0),
          (this._lastProgress = NaN);
      }),
      (b._addItem = function (a, b, c) {
        var d = this._createLoadItem(a, b, c);
        if (null != d) {
          var e = this._createLoader(d);
          null != e &&
            ("plugins" in e && (e.plugins = this._plugins),
            (d._loader = e),
            this._loadQueue.push(e),
            this._loadQueueBackup.push(e),
            this._numItems++,
            this._updateProgress(),
            ((this.maintainScriptOrder &&
              d.type == createjs.LoadQueue.JAVASCRIPT) ||
              d.maintainOrder === !0) &&
              (this._scriptOrder.push(d), this._loadedScripts.push(null)));
        }
      }),
      (b._createLoadItem = function (a, b, c) {
        var d = createjs.LoadItem.create(a);
        if (null == d) return null;
        var e = "",
          f = c || this._basePath;
        if (d.src instanceof Object) {
          if (!d.type) return null;
          if (b) {
            e = b;
            var g = createjs.RequestUtils.parseURI(b);
            null == f || g.absolute || g.relative || (e = f + e);
          } else null != f && (e = f);
        } else {
          var h = createjs.RequestUtils.parseURI(d.src);
          h.extension && (d.ext = h.extension),
            null == d.type &&
              (d.type = createjs.RequestUtils.getTypeByExtension(d.ext));
          var i = d.src;
          if (!h.absolute && !h.relative)
            if (b) {
              e = b;
              var g = createjs.RequestUtils.parseURI(b);
              (i = b + i), null == f || g.absolute || g.relative || (e = f + e);
            } else null != f && (e = f);
          d.src = e + d.src;
        }
        (d.path = e),
          (void 0 === d.id || null === d.id || "" === d.id) && (d.id = i);
        var j = this._typeCallbacks[d.type] || this._extensionCallbacks[d.ext];
        if (j) {
          var k = j.callback.call(j.scope, d, this);
          if (k === !1) return null;
          k === !0 || (null != k && (d._loader = k)),
            (h = createjs.RequestUtils.parseURI(d.src)),
            null != h.extension && (d.ext = h.extension);
        }
        return (
          (this._loadItemsById[d.id] = d),
          (this._loadItemsBySrc[d.src] = d),
          null == d.crossOrigin && (d.crossOrigin = this._crossOrigin),
          d
        );
      }),
      (b._createLoader = function (a) {
        if (null != a._loader) return a._loader;
        for (
          var b = this.preferXHR, c = 0;
          c < this._availableLoaders.length;
          c++
        ) {
          var d = this._availableLoaders[c];
          if (d && d.canLoadItem(a)) return new d(a, b);
        }
        return null;
      }),
      (b._loadNext = function () {
        if (!this._paused) {
          this._loadStartWasDispatched ||
            (this._sendLoadStart(), (this._loadStartWasDispatched = !0)),
            this._numItems == this._numItemsLoaded
              ? ((this.loaded = !0),
                this._sendComplete(),
                this.next && this.next.load && this.next.load())
              : (this.loaded = !1);
          for (
            var a = 0;
            a < this._loadQueue.length &&
            !(this._currentLoads.length >= this._maxConnections);
            a++
          ) {
            var b = this._loadQueue[a];
            this._canStartLoad(b) &&
              (this._loadQueue.splice(a, 1), a--, this._loadItem(b));
          }
        }
      }),
      (b._loadItem = function (a) {
        a.on("fileload", this._handleFileLoad, this),
          a.on("progress", this._handleProgress, this),
          a.on("complete", this._handleFileComplete, this),
          a.on("error", this._handleError, this),
          a.on("fileerror", this._handleFileError, this),
          this._currentLoads.push(a),
          this._sendFileStart(a.getItem()),
          a.load();
      }),
      (b._handleFileLoad = function (a) {
        (a.target = null), this.dispatchEvent(a);
      }),
      (b._handleFileError = function (a) {
        var b = new createjs.ErrorEvent("FILE_LOAD_ERROR", null, a.item);
        this._sendError(b);
      }),
      (b._handleError = function (a) {
        var b = a.target;
        this._numItemsLoaded++,
          this._finishOrderedItem(b, !0),
          this._updateProgress();
        var c = new createjs.ErrorEvent("FILE_LOAD_ERROR", null, b.getItem());
        this._sendError(c),
          this.stopOnError
            ? this.setPaused(!0)
            : (this._removeLoadItem(b),
              this._cleanLoadItem(b),
              this._loadNext());
      }),
      (b._handleFileComplete = function (a) {
        var b = a.target,
          c = b.getItem(),
          d = b.getResult();
        this._loadedResults[c.id] = d;
        var e = b.getResult(!0);
        null != e && e !== d && (this._loadedRawResults[c.id] = e),
          this._saveLoadedItems(b),
          this._removeLoadItem(b),
          this._finishOrderedItem(b) || this._processFinishedLoad(c, b),
          this._cleanLoadItem(b);
      }),
      (b._saveLoadedItems = function (a) {
        var b = a.getLoadedItems();
        if (null !== b)
          for (var c = 0; c < b.length; c++) {
            var d = b[c].item;
            (this._loadItemsBySrc[d.src] = d),
              (this._loadItemsById[d.id] = d),
              (this._loadedResults[d.id] = b[c].result),
              (this._loadedRawResults[d.id] = b[c].rawResult);
          }
      }),
      (b._finishOrderedItem = function (a, b) {
        var c = a.getItem();
        if (
          (this.maintainScriptOrder &&
            c.type == createjs.LoadQueue.JAVASCRIPT) ||
          c.maintainOrder
        ) {
          a instanceof createjs.JavaScriptLoader &&
            (this._currentlyLoadingScript = !1);
          var d = createjs.indexOf(this._scriptOrder, c);
          return -1 == d
            ? !1
            : ((this._loadedScripts[d] = b === !0 ? !0 : c),
              this._checkScriptLoadOrder(),
              !0);
        }
        return !1;
      }),
      (b._checkScriptLoadOrder = function () {
        for (var a = this._loadedScripts.length, b = 0; a > b; b++) {
          var c = this._loadedScripts[b];
          if (null === c) break;
          if (c !== !0) {
            var d = this._loadedResults[c.id];
            c.type == createjs.LoadQueue.JAVASCRIPT &&
              createjs.DomUtils.appendToHead(d);
            var e = c._loader;
            this._processFinishedLoad(c, e), (this._loadedScripts[b] = !0);
          }
        }
      }),
      (b._processFinishedLoad = function (a, b) {
        if (
          (this._numItemsLoaded++,
          !this.maintainScriptOrder && a.type == createjs.LoadQueue.JAVASCRIPT)
        ) {
          var c = b.getTag();
          createjs.DomUtils.appendToHead(c);
        }
        this._updateProgress(), this._sendFileComplete(a, b), this._loadNext();
      }),
      (b._canStartLoad = function (a) {
        if (!this.maintainScriptOrder || a.preferXHR) return !0;
        var b = a.getItem();
        if (b.type != createjs.LoadQueue.JAVASCRIPT) return !0;
        if (this._currentlyLoadingScript) return !1;
        for (var c = this._scriptOrder.indexOf(b), d = 0; c > d; ) {
          var e = this._loadedScripts[d];
          if (null == e) return !1;
          d++;
        }
        return (this._currentlyLoadingScript = !0), !0;
      }),
      (b._removeLoadItem = function (a) {
        for (var b = this._currentLoads.length, c = 0; b > c; c++)
          if (this._currentLoads[c] == a) {
            this._currentLoads.splice(c, 1);
            break;
          }
      }),
      (b._cleanLoadItem = function (a) {
        var b = a.getItem();
        b && delete b._loader;
      }),
      (b._handleProgress = function (a) {
        var b = a.target;
        this._sendFileProgress(b.getItem(), b.progress), this._updateProgress();
      }),
      (b._updateProgress = function () {
        var a = this._numItemsLoaded / this._numItems,
          b = this._numItems - this._numItemsLoaded;
        if (b > 0) {
          for (var c = 0, d = 0, e = this._currentLoads.length; e > d; d++)
            c += this._currentLoads[d].progress;
          a += (c / b) * (b / this._numItems);
        }
        this._lastProgress != a &&
          (this._sendProgress(a), (this._lastProgress = a));
      }),
      (b._disposeItem = function (a) {
        delete this._loadedResults[a.id],
          delete this._loadedRawResults[a.id],
          delete this._loadItemsById[a.id],
          delete this._loadItemsBySrc[a.src];
      }),
      (b._sendFileProgress = function (a, b) {
        if (
          !this._isCanceled() &&
          !this._paused &&
          this.hasEventListener("fileprogress")
        ) {
          var c = new createjs.Event("fileprogress");
          (c.progress = b),
            (c.loaded = b),
            (c.total = 1),
            (c.item = a),
            this.dispatchEvent(c);
        }
      }),
      (b._sendFileComplete = function (a, b) {
        if (!this._isCanceled() && !this._paused) {
          var c = new createjs.Event("fileload");
          (c.loader = b),
            (c.item = a),
            (c.result = this._loadedResults[a.id]),
            (c.rawResult = this._loadedRawResults[a.id]),
            a.completeHandler && a.completeHandler(c),
            this.hasEventListener("fileload") && this.dispatchEvent(c);
        }
      }),
      (b._sendFileStart = function (a) {
        var b = new createjs.Event("filestart");
        (b.item = a),
          this.hasEventListener("filestart") && this.dispatchEvent(b);
      }),
      (b.toString = function () {
        return "[PreloadJS LoadQueue]";
      }),
      (createjs.LoadQueue = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.AbstractLoader_constructor(a, !0, createjs.AbstractLoader.TEXT);
    }
    var b = (createjs.extend(a, createjs.AbstractLoader), a);
    (b.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.TEXT;
    }),
      (createjs.TextLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.AbstractLoader_constructor(a, !0, createjs.AbstractLoader.BINARY),
        this.on("initialize", this._updateXHR, this);
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.BINARY;
    }),
      (b._updateXHR = function (a) {
        a.loader.setResponseType("arraybuffer");
      }),
      (createjs.BinaryLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.AbstractLoader_constructor(a, b, createjs.AbstractLoader.CSS),
        (this.resultFormatter = this._formatResult),
        (this._tagSrcAttribute = "href"),
        b
          ? (this._tag = document.createElement("style"))
          : (this._tag = document.createElement("link")),
        (this._tag.rel = "stylesheet"),
        (this._tag.type = "text/css");
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.CSS;
    }),
      (b._formatResult = function (a) {
        if (this._preferXHR) {
          var b = a.getTag();
          if (b.styleSheet) b.styleSheet.cssText = a.getResult(!0);
          else {
            var c = document.createTextNode(a.getResult(!0));
            b.appendChild(c);
          }
        } else b = this._tag;
        return createjs.DomUtils.appendToHead(b), b;
      }),
      (createjs.CSSLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.AbstractLoader_constructor(a, b, createjs.AbstractLoader.IMAGE),
        (this.resultFormatter = this._formatResult),
        (this._tagSrcAttribute = "src"),
        createjs.RequestUtils.isImageTag(a)
          ? (this._tag = a)
          : createjs.RequestUtils.isImageTag(a.src)
          ? (this._tag = a.src)
          : createjs.RequestUtils.isImageTag(a.tag) && (this._tag = a.tag),
        null != this._tag
          ? (this._preferXHR = !1)
          : (this._tag = document.createElement("img")),
        this.on("initialize", this._updateXHR, this);
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.IMAGE;
    }),
      (b.load = function () {
        if ("" != this._tag.src && this._tag.complete)
          return void this._sendComplete();
        var a = this._item.crossOrigin;
        1 == a && (a = "Anonymous"),
          null == a ||
            createjs.RequestUtils.isLocal(this._item.src) ||
            (this._tag.crossOrigin = a),
          this.AbstractLoader_load();
      }),
      (b._updateXHR = function (a) {
        (a.loader.mimeType = "text/plain; charset=x-user-defined-binary"),
          a.loader.setResponseType && a.loader.setResponseType("blob");
      }),
      (b._formatResult = function (a) {
        return this._formatImage;
      }),
      (b._formatImage = function (a, b) {
        var c = this._tag,
          d = window.URL || window.webkitURL;
        if (this._preferXHR)
          if (d) {
            var e = d.createObjectURL(this.getResult(!0));
            (c.src = e),
              c.addEventListener("load", this._cleanUpURL, !1),
              c.addEventListener("error", this._cleanUpURL, !1);
          } else c.src = this._item.src;
        else;
        c.complete
          ? a(c)
          : ((c.onload = createjs.proxy(function () {
              a(this._tag);
            }, this)),
            (c.onerror = createjs.proxy(function () {
              b(_this._tag);
            }, this)));
      }),
      (b._cleanUpURL = function (a) {
        var b = window.URL || window.webkitURL;
        b.revokeObjectURL(a.target.src);
      }),
      (createjs.ImageLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.AbstractLoader_constructor(a, b, createjs.AbstractLoader.JAVASCRIPT),
        (this.resultFormatter = this._formatResult),
        (this._tagSrcAttribute = "src"),
        this.setTag(document.createElement("script"));
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.JAVASCRIPT;
    }),
      (b._formatResult = function (a) {
        var b = a.getTag();
        return this._preferXHR && (b.text = a.getResult(!0)), b;
      }),
      (createjs.JavaScriptLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.AbstractLoader_constructor(a, !0, createjs.AbstractLoader.JSON),
        (this.resultFormatter = this._formatResult);
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.JSON;
    }),
      (b._formatResult = function (a) {
        var b = null;
        try {
          b = createjs.DataUtils.parseJSON(a.getResult(!0));
        } catch (c) {
          var d = new createjs.ErrorEvent("JSON_FORMAT", null, c);
          return this._sendError(d), c;
        }
        return b;
      }),
      (createjs.JSONLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.AbstractLoader_constructor(a, !1, createjs.AbstractLoader.JSONP),
        this.setTag(document.createElement("script")),
        (this.getTag().type = "text/javascript");
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.JSONP;
    }),
      (b.cancel = function () {
        this.AbstractLoader_cancel(), this._dispose();
      }),
      (b.load = function () {
        if (null == this._item.callback)
          throw new Error("callback is required for loading JSONP requests.");
        if (null != window[this._item.callback])
          throw new Error(
            "JSONP callback '" +
              this._item.callback +
              "' already exists on window. You need to specify a different callback or re-name the current one."
          );
        (window[this._item.callback] = createjs.proxy(this._handleLoad, this)),
          window.document.body.appendChild(this._tag),
          (this._loadTimeout = setTimeout(
            createjs.proxy(this._handleTimeout, this),
            this._item.loadTimeout
          )),
          (this._tag.src = this._item.src);
      }),
      (b._handleLoad = function (a) {
        (this._result = this._rawResult = a),
          this._sendComplete(),
          this._dispose();
      }),
      (b._handleTimeout = function () {
        this._dispose(), this.dispatchEvent(new createjs.ErrorEvent("timeout"));
      }),
      (b._dispose = function () {
        window.document.body.removeChild(this._tag),
          delete window[this._item.callback],
          clearTimeout(this._loadTimeout);
      }),
      (createjs.JSONPLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.AbstractLoader_constructor(
        a,
        null,
        createjs.AbstractLoader.MANIFEST
      ),
        (this.plugins = null),
        (this._manifestQueue = null);
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.MANIFEST_PROGRESS = 0.25),
      (c.canLoadItem = function (a) {
        return a.type == createjs.AbstractLoader.MANIFEST;
      }),
      (b.load = function () {
        this.AbstractLoader_load();
      }),
      (b._createRequest = function () {
        var a = this._item.callback;
        null != a
          ? (this._request = new createjs.JSONPLoader(this._item))
          : (this._request = new createjs.JSONLoader(this._item));
      }),
      (b.handleEvent = function (a) {
        switch (a.type) {
          case "complete":
            return (
              (this._rawResult = a.target.getResult(!0)),
              (this._result = a.target.getResult()),
              this._sendProgress(c.MANIFEST_PROGRESS),
              void this._loadManifest(this._result)
            );
          case "progress":
            return (
              (a.loaded *= c.MANIFEST_PROGRESS),
              (this.progress = a.loaded / a.total),
              (isNaN(this.progress) || this.progress == 1 / 0) &&
                (this.progress = 0),
              void this._sendProgress(a)
            );
        }
        this.AbstractLoader_handleEvent(a);
      }),
      (b.destroy = function () {
        this.AbstractLoader_destroy(), this._manifestQueue.close();
      }),
      (b._loadManifest = function (a) {
        if (a && a.manifest) {
          var b = (this._manifestQueue = new createjs.LoadQueue());
          b.on("fileload", this._handleManifestFileLoad, this),
            b.on("progress", this._handleManifestProgress, this),
            b.on("complete", this._handleManifestComplete, this, !0),
            b.on("error", this._handleManifestError, this, !0);
          for (var c = 0, d = this.plugins.length; d > c; c++)
            b.installPlugin(this.plugins[c]);
          b.loadManifest(a);
        } else this._sendComplete();
      }),
      (b._handleManifestFileLoad = function (a) {
        (a.target = null), this.dispatchEvent(a);
      }),
      (b._handleManifestComplete = function (a) {
        (this._loadedItems = this._manifestQueue.getItems(!0)),
          this._sendComplete();
      }),
      (b._handleManifestProgress = function (a) {
        (this.progress =
          a.progress * (1 - c.MANIFEST_PROGRESS) + c.MANIFEST_PROGRESS),
          this._sendProgress(this.progress);
      }),
      (b._handleManifestError = function (a) {
        var b = new createjs.Event("fileerror");
        (b.item = a.data), this.dispatchEvent(b);
      }),
      (createjs.ManifestLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.AbstractMediaLoader_constructor(a, b, createjs.AbstractLoader.SOUND),
        createjs.RequestUtils.isAudioTag(a)
          ? (this._tag = a)
          : createjs.RequestUtils.isAudioTag(a.src)
          ? (this._tag = a)
          : createjs.RequestUtils.isAudioTag(a.tag) &&
            (this._tag = createjs.RequestUtils.isAudioTag(a) ? a : a.src),
        null != this._tag && (this._preferXHR = !1);
    }
    var b = createjs.extend(a, createjs.AbstractMediaLoader),
      c = a;
    (c.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.SOUND;
    }),
      (b._createTag = function (a) {
        var b = document.createElement("audio");
        return (b.autoplay = !1), (b.preload = "none"), (b.src = a), b;
      }),
      (createjs.SoundLoader = createjs.promote(a, "AbstractMediaLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.AbstractMediaLoader_constructor(a, b, createjs.AbstractLoader.VIDEO),
        createjs.RequestUtils.isVideoTag(a) ||
        createjs.RequestUtils.isVideoTag(a.src)
          ? (this.setTag(createjs.RequestUtils.isVideoTag(a) ? a : a.src),
            (this._preferXHR = !1))
          : this.setTag(this._createTag());
    }
    var b = createjs.extend(a, createjs.AbstractMediaLoader),
      c = a;
    (b._createTag = function () {
      return document.createElement("video");
    }),
      (c.canLoadItem = function (a) {
        return a.type == createjs.AbstractLoader.VIDEO;
      }),
      (createjs.VideoLoader = createjs.promote(a, "AbstractMediaLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.AbstractLoader_constructor(
        a,
        b,
        createjs.AbstractLoader.SPRITESHEET
      ),
        (this._manifestQueue = null);
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.SPRITESHEET_PROGRESS = 0.25),
      (c.canLoadItem = function (a) {
        return a.type == createjs.AbstractLoader.SPRITESHEET;
      }),
      (b.destroy = function () {
        this.AbstractLoader_destroy, this._manifestQueue.close();
      }),
      (b._createRequest = function () {
        var a = this._item.callback;
        null != a
          ? (this._request = new createjs.JSONPLoader(this._item))
          : (this._request = new createjs.JSONLoader(this._item));
      }),
      (b.handleEvent = function (a) {
        switch (a.type) {
          case "complete":
            return (
              (this._rawResult = a.target.getResult(!0)),
              (this._result = a.target.getResult()),
              this._sendProgress(c.SPRITESHEET_PROGRESS),
              void this._loadManifest(this._result)
            );
          case "progress":
            return (
              (a.loaded *= c.SPRITESHEET_PROGRESS),
              (this.progress = a.loaded / a.total),
              (isNaN(this.progress) || this.progress == 1 / 0) &&
                (this.progress = 0),
              void this._sendProgress(a)
            );
        }
        this.AbstractLoader_handleEvent(a);
      }),
      (b._loadManifest = function (a) {
        if (a && a.images) {
          var b = (this._manifestQueue = new createjs.LoadQueue(
            this._preferXHR,
            this._item.path,
            this._item.crossOrigin
          ));
          b.on("complete", this._handleManifestComplete, this, !0),
            b.on("fileload", this._handleManifestFileLoad, this),
            b.on("progress", this._handleManifestProgress, this),
            b.on("error", this._handleManifestError, this, !0),
            b.loadManifest(a.images);
        }
      }),
      (b._handleManifestFileLoad = function (a) {
        var b = a.result;
        if (null != b) {
          var c = this.getResult().images,
            d = c.indexOf(a.item.src);
          c[d] = b;
        }
      }),
      (b._handleManifestComplete = function (a) {
        (this._result = new createjs.SpriteSheet(this._result)),
          (this._loadedItems = this._manifestQueue.getItems(!0)),
          this._sendComplete();
      }),
      (b._handleManifestProgress = function (a) {
        (this.progress =
          a.progress * (1 - c.SPRITESHEET_PROGRESS) + c.SPRITESHEET_PROGRESS),
          this._sendProgress(this.progress);
      }),
      (b._handleManifestError = function (a) {
        var b = new createjs.Event("fileerror");
        (b.item = a.data), this.dispatchEvent(b);
      }),
      (createjs.SpriteSheetLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b) {
      this.AbstractLoader_constructor(a, b, createjs.AbstractLoader.SVG),
        (this.resultFormatter = this._formatResult),
        (this._tagSrcAttribute = "data"),
        b
          ? this.setTag(document.createElement("svg"))
          : (this.setTag(document.createElement("object")),
            (this.getTag().type = "image/svg+xml"));
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.SVG;
    }),
      (b._formatResult = function (a) {
        var b = createjs.DataUtils.parseXML(a.getResult(!0), "text/xml"),
          c = a.getTag();
        return (
          !this._preferXHR &&
            document.body.contains(c) &&
            document.body.removeChild(c),
          null != b.documentElement
            ? (c.appendChild(b.documentElement),
              (c.style.visibility = "visible"),
              c)
            : b
        );
      }),
      (createjs.SVGLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.AbstractLoader_constructor(a, !0, createjs.AbstractLoader.XML),
        (this.resultFormatter = this._formatResult);
    }
    var b = createjs.extend(a, createjs.AbstractLoader),
      c = a;
    (c.canLoadItem = function (a) {
      return a.type == createjs.AbstractLoader.XML;
    }),
      (b._formatResult = function (a) {
        return createjs.DataUtils.parseXML(a.getResult(!0), "text/xml");
      }),
      (createjs.XMLLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    var a = (createjs.SoundJS = createjs.SoundJS || {});
    (a.version = "0.6.2"), (a.buildDate = "Thu, 26 Nov 2015 20:44:31 GMT");
  })(),
  (this.createjs = this.createjs || {}),
  (createjs.indexOf = function (a, b) {
    "use strict";
    for (var c = 0, d = a.length; d > c; c++) if (b === a[c]) return c;
    return -1;
  }),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    createjs.proxy = function (a, b) {
      var c = Array.prototype.slice.call(arguments, 2);
      return function () {
        return a.apply(b, Array.prototype.slice.call(arguments, 0).concat(c));
      };
    };
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      throw "BrowserDetect cannot be instantiated";
    }
    var b = (a.agent = window.navigator.userAgent);
    (a.isWindowPhone =
      b.indexOf("IEMobile") > -1 || b.indexOf("Windows Phone") > -1),
      (a.isFirefox = b.indexOf("Firefox") > -1),
      (a.isOpera = null != window.opera),
      (a.isChrome = b.indexOf("Chrome") > -1),
      (a.isIOS =
        (b.indexOf("iPod") > -1 ||
          b.indexOf("iPhone") > -1 ||
          b.indexOf("iPad") > -1) &&
        !a.isWindowPhone),
      (a.isAndroid = b.indexOf("Android") > -1 && !a.isWindowPhone),
      (a.isBlackberry = b.indexOf("Blackberry") > -1),
      (createjs.BrowserDetect = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    var a = function () {
        (this.interrupt = null),
          (this.delay = null),
          (this.offset = null),
          (this.loop = null),
          (this.volume = null),
          (this.pan = null),
          (this.startTime = null),
          (this.duration = null);
      },
      b = (a.prototype = {}),
      c = a;
    (c.create = function (a) {
      if (a instanceof c || a instanceof Object) {
        var b = new createjs.PlayPropsConfig();
        return b.set(a), b;
      }
      throw new Error("Type not recognized.");
    }),
      (b.set = function (a) {
        for (var b in a) this[b] = a[b];
        return this;
      }),
      (b.toString = function () {
        return "[PlayPropsConfig]";
      }),
      (createjs.PlayPropsConfig = c);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      throw "Sound cannot be instantiated";
    }
    function b(a, b) {
      this.init(a, b);
    }
    var c = a;
    (c.INTERRUPT_ANY = "any"),
      (c.INTERRUPT_EARLY = "early"),
      (c.INTERRUPT_LATE = "late"),
      (c.INTERRUPT_NONE = "none"),
      (c.PLAY_INITED = "playInited"),
      (c.PLAY_SUCCEEDED = "playSucceeded"),
      (c.PLAY_INTERRUPTED = "playInterrupted"),
      (c.PLAY_FINISHED = "playFinished"),
      (c.PLAY_FAILED = "playFailed"),
      (c.SUPPORTED_EXTENSIONS = [
        "mp3",
        "ogg",
        "opus",
        "mpeg",
        "wav",
        "m4a",
        "mp4",
        "aiff",
        "wma",
        "mid",
      ]),
      (c.EXTENSION_MAP = { m4a: "mp4" }),
      (c.FILE_PATTERN =
        /^(?:(\w+:)\/{2}(\w+(?:\.\w+)*\/?))?([\/.]*?(?:[^?]+)?\/)?((?:[^\/?]+)\.(\w+))(?:\?(\S+)?)?$/),
      (c.defaultInterruptBehavior = c.INTERRUPT_NONE),
      (c.alternateExtensions = []),
      (c.activePlugin = null),
      (c._masterVolume = 1),
      Object.defineProperty(c, "volume", {
        get: function () {
          return this._masterVolume;
        },
        set: function (a) {
          if (null == Number(a)) return !1;
          if (
            ((a = Math.max(0, Math.min(1, a))),
            (c._masterVolume = a),
            !this.activePlugin ||
              !this.activePlugin.setVolume ||
              !this.activePlugin.setVolume(a))
          )
            for (var b = this._instances, d = 0, e = b.length; e > d; d++)
              b[d].setMasterVolume(a);
        },
      }),
      (c._masterMute = !1),
      Object.defineProperty(c, "muted", {
        get: function () {
          return this._masterMute;
        },
        set: function (a) {
          if (null == a) return !1;
          if (
            ((this._masterMute = a),
            !this.activePlugin ||
              !this.activePlugin.setMute ||
              !this.activePlugin.setMute(a))
          )
            for (var b = this._instances, c = 0, d = b.length; d > c; c++)
              b[c].setMasterMute(a);
          return !0;
        },
      }),
      Object.defineProperty(c, "capabilities", {
        get: function () {
          return null == c.activePlugin ? null : c.activePlugin._capabilities;
        },
        set: function (a) {
          return !1;
        },
      }),
      (c._pluginsRegistered = !1),
      (c._lastID = 0),
      (c._instances = []),
      (c._idHash = {}),
      (c._preloadHash = {}),
      (c._defaultPlayPropsHash = {}),
      (c.addEventListener = null),
      (c.removeEventListener = null),
      (c.removeAllEventListeners = null),
      (c.dispatchEvent = null),
      (c.hasEventListener = null),
      (c._listeners = null),
      createjs.EventDispatcher.initialize(c),
      (c.getPreloadHandlers = function () {
        return {
          callback: createjs.proxy(c.initLoad, c),
          types: ["sound"],
          extensions: c.SUPPORTED_EXTENSIONS,
        };
      }),
      (c._handleLoadComplete = function (a) {
        var b = a.target.getItem().src;
        if (c._preloadHash[b])
          for (var d = 0, e = c._preloadHash[b].length; e > d; d++) {
            var f = c._preloadHash[b][d];
            if (((c._preloadHash[b][d] = !0), c.hasEventListener("fileload"))) {
              var a = new createjs.Event("fileload");
              (a.src = f.src),
                (a.id = f.id),
                (a.data = f.data),
                (a.sprite = f.sprite),
                c.dispatchEvent(a);
            }
          }
      }),
      (c._handleLoadError = function (a) {
        var b = a.target.getItem().src;
        if (c._preloadHash[b])
          for (var d = 0, e = c._preloadHash[b].length; e > d; d++) {
            var f = c._preloadHash[b][d];
            if (
              ((c._preloadHash[b][d] = !1), c.hasEventListener("fileerror"))
            ) {
              var a = new createjs.Event("fileerror");
              (a.src = f.src),
                (a.id = f.id),
                (a.data = f.data),
                (a.sprite = f.sprite),
                c.dispatchEvent(a);
            }
          }
      }),
      (c._registerPlugin = function (a) {
        return a.isSupported() ? ((c.activePlugin = new a()), !0) : !1;
      }),
      (c.registerPlugins = function (a) {
        c._pluginsRegistered = !0;
        for (var b = 0, d = a.length; d > b; b++)
          if (c._registerPlugin(a[b])) return !0;
        return !1;
      }),
      (c.initializeDefaultPlugins = function () {
        return null != c.activePlugin
          ? !0
          : c._pluginsRegistered
          ? !1
          : c.registerPlugins([
              createjs.WebAudioPlugin,
              createjs.HTMLAudioPlugin,
            ])
          ? !0
          : !1;
      }),
      (c.isReady = function () {
        return null != c.activePlugin;
      }),
      (c.getCapabilities = function () {
        return null == c.activePlugin ? null : c.activePlugin._capabilities;
      }),
      (c.getCapability = function (a) {
        return null == c.activePlugin ? null : c.activePlugin._capabilities[a];
      }),
      (c.initLoad = function (a) {
        return c._registerSound(a);
      }),
      (c._registerSound = function (a) {
        if (!c.initializeDefaultPlugins()) return !1;
        var d;
        if (
          (a.src instanceof Object
            ? ((d = c._parseSrc(a.src)), (d.src = a.path + d.src))
            : (d = c._parsePath(a.src)),
          null == d)
        )
          return !1;
        (a.src = d.src), (a.type = "sound");
        var e = a.data,
          f = null;
        if (
          null != e &&
          (isNaN(e.channels)
            ? isNaN(e) || (f = parseInt(e))
            : (f = parseInt(e.channels)),
          e.audioSprite)
        )
          for (var g, h = e.audioSprite.length; h--; )
            (g = e.audioSprite[h]),
              (c._idHash[g.id] = {
                src: a.src,
                startTime: parseInt(g.startTime),
                duration: parseInt(g.duration),
              }),
              g.defaultPlayProps &&
                (c._defaultPlayPropsHash[g.id] =
                  createjs.PlayPropsConfig.create(g.defaultPlayProps));
        null != a.id && (c._idHash[a.id] = { src: a.src });
        var i = c.activePlugin.register(a);
        return (
          b.create(a.src, f),
          null != e && isNaN(e)
            ? (a.data.channels = f || b.maxPerChannel())
            : (a.data = f || b.maxPerChannel()),
          i.type && (a.type = i.type),
          a.defaultPlayProps &&
            (c._defaultPlayPropsHash[a.src] = createjs.PlayPropsConfig.create(
              a.defaultPlayProps
            )),
          i
        );
      }),
      (c.registerSound = function (a, b, d, e, f) {
        var g = { src: a, id: b, data: d, defaultPlayProps: f };
        a instanceof Object && a.src && ((e = b), (g = a)),
          (g = createjs.LoadItem.create(g)),
          (g.path = e),
          null == e || g.src instanceof Object || (g.src = e + a);
        var h = c._registerSound(g);
        if (!h) return !1;
        if (
          (c._preloadHash[g.src] || (c._preloadHash[g.src] = []),
          c._preloadHash[g.src].push(g),
          1 == c._preloadHash[g.src].length)
        )
          h.on("complete", createjs.proxy(this._handleLoadComplete, this)),
            h.on("error", createjs.proxy(this._handleLoadError, this)),
            c.activePlugin.preload(h);
        else if (1 == c._preloadHash[g.src][0]) return !0;
        return g;
      }),
      (c.registerSounds = function (a, b) {
        var c = [];
        a.path && (b ? (b += a.path) : (b = a.path), (a = a.manifest));
        for (var d = 0, e = a.length; e > d; d++)
          c[d] = createjs.Sound.registerSound(
            a[d].src,
            a[d].id,
            a[d].data,
            b,
            a[d].defaultPlayProps
          );
        return c;
      }),
      (c.removeSound = function (a, d) {
        if (null == c.activePlugin) return !1;
        a instanceof Object && a.src && (a = a.src);
        var e;
        if (
          (a instanceof Object
            ? (e = c._parseSrc(a))
            : ((a = c._getSrcById(a).src), (e = c._parsePath(a))),
          null == e)
        )
          return !1;
        (a = e.src), null != d && (a = d + a);
        for (var f in c._idHash) c._idHash[f].src == a && delete c._idHash[f];
        return (
          b.removeSrc(a),
          delete c._preloadHash[a],
          c.activePlugin.removeSound(a),
          !0
        );
      }),
      (c.removeSounds = function (a, b) {
        var c = [];
        a.path && (b ? (b += a.path) : (b = a.path), (a = a.manifest));
        for (var d = 0, e = a.length; e > d; d++)
          c[d] = createjs.Sound.removeSound(a[d].src, b);
        return c;
      }),
      (c.removeAllSounds = function () {
        (c._idHash = {}),
          (c._preloadHash = {}),
          b.removeAll(),
          c.activePlugin && c.activePlugin.removeAllSounds();
      }),
      (c.loadComplete = function (a) {
        if (!c.isReady()) return !1;
        var b = c._parsePath(a);
        return (
          (a = b ? c._getSrcById(b.src).src : c._getSrcById(a).src),
          void 0 == c._preloadHash[a] ? !1 : 1 == c._preloadHash[a][0]
        );
      }),
      (c._parsePath = function (a) {
        "string" != typeof a && (a = a.toString());
        var b = a.match(c.FILE_PATTERN);
        if (null == b) return !1;
        for (var d = b[4], e = b[5], f = c.capabilities, g = 0; !f[e]; )
          if (
            ((e = c.alternateExtensions[g++]), g > c.alternateExtensions.length)
          )
            return null;
        a = a.replace("." + b[5], "." + e);
        var h = { name: d, src: a, extension: e };
        return h;
      }),
      (c._parseSrc = function (a) {
        var b = { name: void 0, src: void 0, extension: void 0 },
          d = c.capabilities;
        for (var e in a)
          if (a.hasOwnProperty(e) && d[e]) {
            (b.src = a[e]), (b.extension = e);
            break;
          }
        if (!b.src) return !1;
        var f = b.src.lastIndexOf("/");
        return -1 != f ? (b.name = b.src.slice(f + 1)) : (b.name = b.src), b;
      }),
      (c.play = function (a, b, d, e, f, g, h, i, j) {
        var k;
        k =
          b instanceof Object || b instanceof createjs.PlayPropsConfig
            ? createjs.PlayPropsConfig.create(b)
            : createjs.PlayPropsConfig.create({
                interrupt: b,
                delay: d,
                offset: e,
                loop: f,
                volume: g,
                pan: h,
                startTime: i,
                duration: j,
              });
        var l = c.createInstance(a, k.startTime, k.duration),
          m = c._playInstance(l, k);
        return m || l._playFailed(), l;
      }),
      (c.createInstance = function (a, d, e) {
        if (!c.initializeDefaultPlugins())
          return new createjs.DefaultSoundInstance(a, d, e);
        var f = c._defaultPlayPropsHash[a];
        a = c._getSrcById(a);
        var g = c._parsePath(a.src),
          h = null;
        return (
          null != g && null != g.src
            ? (b.create(g.src),
              null == d && (d = a.startTime),
              (h = c.activePlugin.create(g.src, d, e || a.duration)),
              (f = f || c._defaultPlayPropsHash[g.src]),
              f && h.applyPlayProps(f))
            : (h = new createjs.DefaultSoundInstance(a, d, e)),
          (h.uniqueId = c._lastID++),
          h
        );
      }),
      (c.stop = function () {
        for (var a = this._instances, b = a.length; b--; ) a[b].stop();
      }),
      (c.setVolume = function (a) {
        if (null == Number(a)) return !1;
        if (
          ((a = Math.max(0, Math.min(1, a))),
          (c._masterVolume = a),
          !this.activePlugin ||
            !this.activePlugin.setVolume ||
            !this.activePlugin.setVolume(a))
        )
          for (var b = this._instances, d = 0, e = b.length; e > d; d++)
            b[d].setMasterVolume(a);
      }),
      (c.getVolume = function () {
        return this._masterVolume;
      }),
      (c.setMute = function (a) {
        if (null == a) return !1;
        if (
          ((this._masterMute = a),
          !this.activePlugin ||
            !this.activePlugin.setMute ||
            !this.activePlugin.setMute(a))
        )
          for (var b = this._instances, c = 0, d = b.length; d > c; c++)
            b[c].setMasterMute(a);
        return !0;
      }),
      (c.getMute = function () {
        return this._masterMute;
      }),
      (c.setDefaultPlayProps = function (a, b) {
        (a = c._getSrcById(a)),
          (c._defaultPlayPropsHash[c._parsePath(a.src).src] =
            createjs.PlayPropsConfig.create(b));
      }),
      (c.getDefaultPlayProps = function (a) {
        return (
          (a = c._getSrcById(a)),
          c._defaultPlayPropsHash[c._parsePath(a.src).src]
        );
      }),
      (c._playInstance = function (a, b) {
        var d = c._defaultPlayPropsHash[a.src] || {};
        if (
          (null == b.interrupt &&
            (b.interrupt = d.interrupt || c.defaultInterruptBehavior),
          null == b.delay && (b.delay = d.delay || 0),
          null == b.offset && (b.offset = a.getPosition()),
          null == b.loop && (b.loop = a.loop),
          null == b.volume && (b.volume = a.volume),
          null == b.pan && (b.pan = a.pan),
          0 == b.delay)
        ) {
          var e = c._beginPlaying(a, b);
          if (!e) return !1;
        } else {
          var f = setTimeout(function () {
            c._beginPlaying(a, b);
          }, b.delay);
          a.delayTimeoutId = f;
        }
        return this._instances.push(a), !0;
      }),
      (c._beginPlaying = function (a, c) {
        if (!b.add(a, c.interrupt)) return !1;
        var d = a._beginPlaying(c);
        if (!d) {
          var e = createjs.indexOf(this._instances, a);
          return e > -1 && this._instances.splice(e, 1), !1;
        }
        return !0;
      }),
      (c._getSrcById = function (a) {
        return c._idHash[a] || { src: a };
      }),
      (c._playFinished = function (a) {
        b.remove(a);
        var c = createjs.indexOf(this._instances, a);
        c > -1 && this._instances.splice(c, 1);
      }),
      (createjs.Sound = a),
      (b.channels = {}),
      (b.create = function (a, c) {
        var d = b.get(a);
        return null == d ? ((b.channels[a] = new b(a, c)), !0) : !1;
      }),
      (b.removeSrc = function (a) {
        var c = b.get(a);
        return null == c ? !1 : (c._removeAll(), delete b.channels[a], !0);
      }),
      (b.removeAll = function () {
        for (var a in b.channels) b.channels[a]._removeAll();
        b.channels = {};
      }),
      (b.add = function (a, c) {
        var d = b.get(a.src);
        return null == d ? !1 : d._add(a, c);
      }),
      (b.remove = function (a) {
        var c = b.get(a.src);
        return null == c ? !1 : (c._remove(a), !0);
      }),
      (b.maxPerChannel = function () {
        return d.maxDefault;
      }),
      (b.get = function (a) {
        return b.channels[a];
      });
    var d = b.prototype;
    (d.constructor = b),
      (d.src = null),
      (d.max = null),
      (d.maxDefault = 100),
      (d.length = 0),
      (d.init = function (a, b) {
        (this.src = a),
          (this.max = b || this.maxDefault),
          -1 == this.max && (this.max = this.maxDefault),
          (this._instances = []);
      }),
      (d._get = function (a) {
        return this._instances[a];
      }),
      (d._add = function (a, b) {
        return this._getSlot(b, a)
          ? (this._instances.push(a), this.length++, !0)
          : !1;
      }),
      (d._remove = function (a) {
        var b = createjs.indexOf(this._instances, a);
        return -1 == b ? !1 : (this._instances.splice(b, 1), this.length--, !0);
      }),
      (d._removeAll = function () {
        for (var a = this.length - 1; a >= 0; a--) this._instances[a].stop();
      }),
      (d._getSlot = function (b, c) {
        var d, e;
        if (b != a.INTERRUPT_NONE && ((e = this._get(0)), null == e)) return !0;
        for (var f = 0, g = this.max; g > f; f++) {
          if (((d = this._get(f)), null == d)) return !0;
          if (
            d.playState == a.PLAY_FINISHED ||
            d.playState == a.PLAY_INTERRUPTED ||
            d.playState == a.PLAY_FAILED
          ) {
            e = d;
            break;
          }
          b != a.INTERRUPT_NONE &&
            ((b == a.INTERRUPT_EARLY && d.getPosition() < e.getPosition()) ||
              (b == a.INTERRUPT_LATE && d.getPosition() > e.getPosition())) &&
            (e = d);
        }
        return null != e ? (e._interrupt(), this._remove(e), !0) : !1;
      }),
      (d.toString = function () {
        return "[Sound SoundChannel]";
      });
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    var a = function (a, b, c, d) {
        this.EventDispatcher_constructor(),
          (this.src = a),
          (this.uniqueId = -1),
          (this.playState = null),
          (this.delayTimeoutId = null),
          (this._volume = 1),
          Object.defineProperty(this, "volume", {
            get: this.getVolume,
            set: this.setVolume,
          }),
          (this._pan = 0),
          Object.defineProperty(this, "pan", {
            get: this.getPan,
            set: this.setPan,
          }),
          (this._startTime = Math.max(0, b || 0)),
          Object.defineProperty(this, "startTime", {
            get: this.getStartTime,
            set: this.setStartTime,
          }),
          (this._duration = Math.max(0, c || 0)),
          Object.defineProperty(this, "duration", {
            get: this.getDuration,
            set: this.setDuration,
          }),
          (this._playbackResource = null),
          Object.defineProperty(this, "playbackResource", {
            get: this.getPlaybackResource,
            set: this.setPlaybackResource,
          }),
          d !== !1 && d !== !0 && this.setPlaybackResource(d),
          (this._position = 0),
          Object.defineProperty(this, "position", {
            get: this.getPosition,
            set: this.setPosition,
          }),
          (this._loop = 0),
          Object.defineProperty(this, "loop", {
            get: this.getLoop,
            set: this.setLoop,
          }),
          (this._muted = !1),
          Object.defineProperty(this, "muted", {
            get: this.getMuted,
            set: this.setMuted,
          }),
          (this._paused = !1),
          Object.defineProperty(this, "paused", {
            get: this.getPaused,
            set: this.setPaused,
          });
      },
      b = createjs.extend(a, createjs.EventDispatcher);
    (b.play = function (a, b, c, d, e, f) {
      var g;
      return (
        (g =
          a instanceof Object || a instanceof createjs.PlayPropsConfig
            ? createjs.PlayPropsConfig.create(a)
            : createjs.PlayPropsConfig.create({
                interrupt: a,
                delay: b,
                offset: c,
                loop: d,
                volume: e,
                pan: f,
              })),
        this.playState == createjs.Sound.PLAY_SUCCEEDED
          ? (this.applyPlayProps(g), void (this._paused && this.setPaused(!1)))
          : (this._cleanUp(), createjs.Sound._playInstance(this, g), this)
      );
    }),
      (b.stop = function () {
        return (
          (this._position = 0),
          (this._paused = !1),
          this._handleStop(),
          this._cleanUp(),
          (this.playState = createjs.Sound.PLAY_FINISHED),
          this
        );
      }),
      (b.destroy = function () {
        this._cleanUp(),
          (this.src = null),
          (this.playbackResource = null),
          this.removeAllEventListeners();
      }),
      (b.applyPlayProps = function (a) {
        return (
          null != a.offset && this.setPosition(a.offset),
          null != a.loop && this.setLoop(a.loop),
          null != a.volume && this.setVolume(a.volume),
          null != a.pan && this.setPan(a.pan),
          null != a.startTime &&
            (this.setStartTime(a.startTime), this.setDuration(a.duration)),
          this
        );
      }),
      (b.toString = function () {
        return "[AbstractSoundInstance]";
      }),
      (b.getPaused = function () {
        return this._paused;
      }),
      (b.setPaused = function (a) {
        return (a !== !0 && a !== !1) ||
          this._paused == a ||
          (1 == a && this.playState != createjs.Sound.PLAY_SUCCEEDED)
          ? void 0
          : ((this._paused = a),
            a ? this._pause() : this._resume(),
            clearTimeout(this.delayTimeoutId),
            this);
      }),
      (b.setVolume = function (a) {
        return a == this._volume
          ? this
          : ((this._volume = Math.max(0, Math.min(1, a))),
            this._muted || this._updateVolume(),
            this);
      }),
      (b.getVolume = function () {
        return this._volume;
      }),
      (b.setMuted = function (a) {
        return a === !0 || a === !1
          ? ((this._muted = a), this._updateVolume(), this)
          : void 0;
      }),
      (b.getMuted = function () {
        return this._muted;
      }),
      (b.setPan = function (a) {
        return a == this._pan
          ? this
          : ((this._pan = Math.max(-1, Math.min(1, a))),
            this._updatePan(),
            this);
      }),
      (b.getPan = function () {
        return this._pan;
      }),
      (b.getPosition = function () {
        return (
          this._paused ||
            this.playState != createjs.Sound.PLAY_SUCCEEDED ||
            (this._position = this._calculateCurrentPosition()),
          this._position
        );
      }),
      (b.setPosition = function (a) {
        return (
          (this._position = Math.max(0, a)),
          this.playState == createjs.Sound.PLAY_SUCCEEDED &&
            this._updatePosition(),
          this
        );
      }),
      (b.getStartTime = function () {
        return this._startTime;
      }),
      (b.setStartTime = function (a) {
        return a == this._startTime
          ? this
          : ((this._startTime = Math.max(0, a || 0)),
            this._updateStartTime(),
            this);
      }),
      (b.getDuration = function () {
        return this._duration;
      }),
      (b.setDuration = function (a) {
        return a == this._duration
          ? this
          : ((this._duration = Math.max(0, a || 0)),
            this._updateDuration(),
            this);
      }),
      (b.setPlaybackResource = function (a) {
        return (
          (this._playbackResource = a),
          0 == this._duration && this._setDurationFromSource(),
          this
        );
      }),
      (b.getPlaybackResource = function () {
        return this._playbackResource;
      }),
      (b.getLoop = function () {
        return this._loop;
      }),
      (b.setLoop = function (a) {
        null != this._playbackResource &&
          (0 != this._loop && 0 == a
            ? this._removeLooping(a)
            : 0 == this._loop && 0 != a && this._addLooping(a)),
          (this._loop = a);
      }),
      (b._sendEvent = function (a) {
        var b = new createjs.Event(a);
        this.dispatchEvent(b);
      }),
      (b._cleanUp = function () {
        clearTimeout(this.delayTimeoutId),
          this._handleCleanUp(),
          (this._paused = !1),
          createjs.Sound._playFinished(this);
      }),
      (b._interrupt = function () {
        this._cleanUp(),
          (this.playState = createjs.Sound.PLAY_INTERRUPTED),
          this._sendEvent("interrupted");
      }),
      (b._beginPlaying = function (a) {
        return (
          this.setPosition(a.offset),
          this.setLoop(a.loop),
          this.setVolume(a.volume),
          this.setPan(a.pan),
          null != a.startTime &&
            (this.setStartTime(a.startTime), this.setDuration(a.duration)),
          null != this._playbackResource && this._position < this._duration
            ? ((this._paused = !1),
              this._handleSoundReady(),
              (this.playState = createjs.Sound.PLAY_SUCCEEDED),
              this._sendEvent("succeeded"),
              !0)
            : (this._playFailed(), !1)
        );
      }),
      (b._playFailed = function () {
        this._cleanUp(),
          (this.playState = createjs.Sound.PLAY_FAILED),
          this._sendEvent("failed");
      }),
      (b._handleSoundComplete = function (a) {
        return (
          (this._position = 0),
          0 != this._loop
            ? (this._loop--, this._handleLoop(), void this._sendEvent("loop"))
            : (this._cleanUp(),
              (this.playState = createjs.Sound.PLAY_FINISHED),
              void this._sendEvent("complete"))
        );
      }),
      (b._handleSoundReady = function () {}),
      (b._updateVolume = function () {}),
      (b._updatePan = function () {}),
      (b._updateStartTime = function () {}),
      (b._updateDuration = function () {}),
      (b._setDurationFromSource = function () {}),
      (b._calculateCurrentPosition = function () {}),
      (b._updatePosition = function () {}),
      (b._removeLooping = function (a) {}),
      (b._addLooping = function (a) {}),
      (b._pause = function () {}),
      (b._resume = function () {}),
      (b._handleStop = function () {}),
      (b._handleCleanUp = function () {}),
      (b._handleLoop = function () {}),
      (createjs.AbstractSoundInstance = createjs.promote(a, "EventDispatcher")),
      (createjs.DefaultSoundInstance = createjs.AbstractSoundInstance);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    var a = function () {
        (this._capabilities = null),
          (this._loaders = {}),
          (this._audioSources = {}),
          (this._soundInstances = {}),
          (this._volume = 1),
          this._loaderClass,
          this._soundInstanceClass;
      },
      b = a.prototype;
    (a._capabilities = null),
      (a.isSupported = function () {
        return !0;
      }),
      (b.register = function (a) {
        var b = this._loaders[a.src];
        return b && !b.canceled
          ? this._loaders[a.src]
          : ((this._audioSources[a.src] = !0),
            (this._soundInstances[a.src] = []),
            (b = new this._loaderClass(a)),
            b.on("complete", this._handlePreloadComplete, this),
            (this._loaders[a.src] = b),
            b);
      }),
      (b.preload = function (a) {
        a.on("error", this._handlePreloadError, this), a.load();
      }),
      (b.isPreloadStarted = function (a) {
        return null != this._audioSources[a];
      }),
      (b.isPreloadComplete = function (a) {
        return !(null == this._audioSources[a] || 1 == this._audioSources[a]);
      }),
      (b.removeSound = function (a) {
        if (this._soundInstances[a]) {
          for (var b = this._soundInstances[a].length; b--; ) {
            var c = this._soundInstances[a][b];
            c.destroy();
          }
          delete this._soundInstances[a],
            delete this._audioSources[a],
            this._loaders[a] && this._loaders[a].destroy(),
            delete this._loaders[a];
        }
      }),
      (b.removeAllSounds = function () {
        for (var a in this._audioSources) this.removeSound(a);
      }),
      (b.create = function (a, b, c) {
        this.isPreloadStarted(a) || this.preload(this.register(a));
        var d = new this._soundInstanceClass(a, b, c, this._audioSources[a]);
        return this._soundInstances[a].push(d), d;
      }),
      (b.setVolume = function (a) {
        return (this._volume = a), this._updateVolume(), !0;
      }),
      (b.getVolume = function () {
        return this._volume;
      }),
      (b.setMute = function (a) {
        return this._updateVolume(), !0;
      }),
      (b.toString = function () {
        return "[AbstractPlugin]";
      }),
      (b._handlePreloadComplete = function (a) {
        var b = a.target.getItem().src;
        this._audioSources[b] = a.result;
        for (var c = 0, d = this._soundInstances[b].length; d > c; c++) {
          var e = this._soundInstances[b][c];
          e.setPlaybackResource(this._audioSources[b]);
        }
      }),
      (b._handlePreloadError = function (a) {}),
      (b._updateVolume = function () {}),
      (createjs.AbstractPlugin = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a) {
      this.AbstractLoader_constructor(a, !0, createjs.AbstractLoader.SOUND);
    }
    var b = createjs.extend(a, createjs.AbstractLoader);
    (a.context = null),
      (b.toString = function () {
        return "[WebAudioLoader]";
      }),
      (b._createRequest = function () {
        (this._request = new createjs.XHRRequest(this._item, !1)),
          this._request.setResponseType("arraybuffer");
      }),
      (b._sendComplete = function (b) {
        a.context.decodeAudioData(
          this._rawResult,
          createjs.proxy(this._handleAudioDecoded, this),
          createjs.proxy(this._sendError, this)
        );
      }),
      (b._handleAudioDecoded = function (a) {
        (this._result = a), this.AbstractLoader__sendComplete();
      }),
      (createjs.WebAudioLoader = createjs.promote(a, "AbstractLoader"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, d, e) {
      this.AbstractSoundInstance_constructor(a, b, d, e),
        (this.gainNode = c.context.createGain()),
        (this.panNode = c.context.createPanner()),
        (this.panNode.panningModel = c._panningModel),
        this.panNode.connect(this.gainNode),
        this._updatePan(),
        (this.sourceNode = null),
        (this._soundCompleteTimeout = null),
        (this._sourceNodeNext = null),
        (this._playbackStartTime = 0),
        (this._endedHandler = createjs.proxy(this._handleSoundComplete, this));
    }
    var b = createjs.extend(a, createjs.AbstractSoundInstance),
      c = a;
    (c.context = null),
      (c._scratchBuffer = null),
      (c.destinationNode = null),
      (c._panningModel = "equalpower"),
      (b.destroy = function () {
        this.AbstractSoundInstance_destroy(),
          this.panNode.disconnect(0),
          (this.panNode = null),
          this.gainNode.disconnect(0),
          (this.gainNode = null);
      }),
      (b.toString = function () {
        return "[WebAudioSoundInstance]";
      }),
      (b._updatePan = function () {
        this.panNode.setPosition(this._pan, 0, -0.5);
      }),
      (b._removeLooping = function (a) {
        this._sourceNodeNext = this._cleanUpAudioNode(this._sourceNodeNext);
      }),
      (b._addLooping = function (a) {
        this.playState == createjs.Sound.PLAY_SUCCEEDED &&
          (this._sourceNodeNext = this._createAndPlayAudioNode(
            this._playbackStartTime,
            0
          ));
      }),
      (b._setDurationFromSource = function () {
        this._duration = 1e3 * this.playbackResource.duration;
      }),
      (b._handleCleanUp = function () {
        this.sourceNode &&
          this.playState == createjs.Sound.PLAY_SUCCEEDED &&
          ((this.sourceNode = this._cleanUpAudioNode(this.sourceNode)),
          (this._sourceNodeNext = this._cleanUpAudioNode(
            this._sourceNodeNext
          ))),
          0 != this.gainNode.numberOfOutputs && this.gainNode.disconnect(0),
          clearTimeout(this._soundCompleteTimeout),
          (this._playbackStartTime = 0);
      }),
      (b._cleanUpAudioNode = function (a) {
        if (a) {
          a.stop(0), a.disconnect(0);
          try {
            a.buffer = c._scratchBuffer;
          } catch (b) {}
          a = null;
        }
        return a;
      }),
      (b._handleSoundReady = function (a) {
        this.gainNode.connect(c.destinationNode);
        var b = 0.001 * this._duration,
          d = 0.001 * this._position;
        d > b && (d = b),
          (this.sourceNode = this._createAndPlayAudioNode(
            c.context.currentTime - b,
            d
          )),
          (this._playbackStartTime = this.sourceNode.startTime - d),
          (this._soundCompleteTimeout = setTimeout(
            this._endedHandler,
            1e3 * (b - d)
          )),
          0 != this._loop &&
            (this._sourceNodeNext = this._createAndPlayAudioNode(
              this._playbackStartTime,
              0
            ));
      }),
      (b._createAndPlayAudioNode = function (a, b) {
        var d = c.context.createBufferSource();
        (d.buffer = this.playbackResource), d.connect(this.panNode);
        var e = 0.001 * this._duration;
        return (
          (d.startTime = a + e),
          d.start(d.startTime, b + 0.001 * this._startTime, e - b),
          d
        );
      }),
      (b._pause = function () {
        (this._position =
          1e3 * (c.context.currentTime - this._playbackStartTime)),
          (this.sourceNode = this._cleanUpAudioNode(this.sourceNode)),
          (this._sourceNodeNext = this._cleanUpAudioNode(this._sourceNodeNext)),
          0 != this.gainNode.numberOfOutputs && this.gainNode.disconnect(0),
          clearTimeout(this._soundCompleteTimeout);
      }),
      (b._resume = function () {
        this._handleSoundReady();
      }),
      (b._updateVolume = function () {
        var a = this._muted ? 0 : this._volume;
        a != this.gainNode.gain.value && (this.gainNode.gain.value = a);
      }),
      (b._calculateCurrentPosition = function () {
        return 1e3 * (c.context.currentTime - this._playbackStartTime);
      }),
      (b._updatePosition = function () {
        (this.sourceNode = this._cleanUpAudioNode(this.sourceNode)),
          (this._sourceNodeNext = this._cleanUpAudioNode(this._sourceNodeNext)),
          clearTimeout(this._soundCompleteTimeout),
          this._paused || this._handleSoundReady();
      }),
      (b._handleLoop = function () {
        this._cleanUpAudioNode(this.sourceNode),
          (this.sourceNode = this._sourceNodeNext),
          (this._playbackStartTime = this.sourceNode.startTime),
          (this._sourceNodeNext = this._createAndPlayAudioNode(
            this._playbackStartTime,
            0
          )),
          (this._soundCompleteTimeout = setTimeout(
            this._endedHandler,
            this._duration
          ));
      }),
      (b._updateDuration = function () {
        this.playState == createjs.Sound.PLAY_SUCCEEDED &&
          (this._pause(), this._resume());
      }),
      (createjs.WebAudioSoundInstance = createjs.promote(
        a,
        "AbstractSoundInstance"
      ));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      this.AbstractPlugin_constructor(),
        (this._panningModel = c._panningModel),
        (this.context = c.context),
        (this.dynamicsCompressorNode = this.context.createDynamicsCompressor()),
        this.dynamicsCompressorNode.connect(this.context.destination),
        (this.gainNode = this.context.createGain()),
        this.gainNode.connect(this.dynamicsCompressorNode),
        (createjs.WebAudioSoundInstance.destinationNode = this.gainNode),
        (this._capabilities = c._capabilities),
        (this._loaderClass = createjs.WebAudioLoader),
        (this._soundInstanceClass = createjs.WebAudioSoundInstance),
        this._addPropsToClasses();
    }
    var b = createjs.extend(a, createjs.AbstractPlugin),
      c = a;
    (c._capabilities = null),
      (c._panningModel = "equalpower"),
      (c.context = null),
      (c._scratchBuffer = null),
      (c._unlocked = !1),
      (c.isSupported = function () {
        var a =
          createjs.BrowserDetect.isIOS ||
          createjs.BrowserDetect.isAndroid ||
          createjs.BrowserDetect.isBlackberry;
        return "file:" != location.protocol || a || this._isFileXHRSupported()
          ? (c._generateCapabilities(), null == c.context ? !1 : !0)
          : !1;
      }),
      (c.playEmptySound = function () {
        if (null != c.context) {
          var a = c.context.createBufferSource();
          (a.buffer = c._scratchBuffer),
            a.connect(c.context.destination),
            a.start(0, 0, 0);
        }
      }),
      (c._isFileXHRSupported = function () {
        var a = !0,
          b = new XMLHttpRequest();
        try {
          b.open("GET", "WebAudioPluginTest.fail", !1);
        } catch (c) {
          return (a = !1);
        }
        (b.onerror = function () {
          a = !1;
        }),
          (b.onload = function () {
            a =
              404 == this.status ||
              200 == this.status ||
              (0 == this.status && "" != this.response);
          });
        try {
          b.send();
        } catch (c) {
          a = !1;
        }
        return a;
      }),
      (c._generateCapabilities = function () {
        if (null == c._capabilities) {
          var a = document.createElement("audio");
          if (null == a.canPlayType) return null;
          if (null == c.context)
            if (window.AudioContext) c.context = new AudioContext();
            else {
              if (!window.webkitAudioContext) return null;
              c.context = new webkitAudioContext();
            }
          null == c._scratchBuffer &&
            (c._scratchBuffer = c.context.createBuffer(1, 1, 22050)),
            c._compatibilitySetUp(),
            "ontouchstart" in window &&
              "running" != c.context.state &&
              (c._unlock(),
              document.addEventListener("mousedown", c._unlock, !0),
              document.addEventListener("touchend", c._unlock, !0)),
            (c._capabilities = { panning: !0, volume: !0, tracks: -1 });
          for (
            var b = createjs.Sound.SUPPORTED_EXTENSIONS,
              d = createjs.Sound.EXTENSION_MAP,
              e = 0,
              f = b.length;
            f > e;
            e++
          ) {
            var g = b[e],
              h = d[g] || g;
            c._capabilities[g] =
              ("no" != a.canPlayType("audio/" + g) &&
                "" != a.canPlayType("audio/" + g)) ||
              ("no" != a.canPlayType("audio/" + h) &&
                "" != a.canPlayType("audio/" + h));
          }
          c.context.destination.numberOfChannels < 2 &&
            (c._capabilities.panning = !1);
        }
      }),
      (c._compatibilitySetUp = function () {
        if (((c._panningModel = "equalpower"), !c.context.createGain)) {
          c.context.createGain = c.context.createGainNode;
          var a = c.context.createBufferSource();
          (a.__proto__.start = a.__proto__.noteGrainOn),
            (a.__proto__.stop = a.__proto__.noteOff),
            (c._panningModel = 0);
        }
      }),
      (c._unlock = function () {
        c._unlocked ||
          (c.playEmptySound(),
          "running" == c.context.state &&
            (document.removeEventListener("mousedown", c._unlock, !0),
            document.removeEventListener("touchend", c._unlock, !0),
            (c._unlocked = !0)));
      }),
      (b.toString = function () {
        return "[WebAudioPlugin]";
      }),
      (b._addPropsToClasses = function () {
        var a = this._soundInstanceClass;
        (a.context = this.context),
          (a._scratchBuffer = c._scratchBuffer),
          (a.destinationNode = this.gainNode),
          (a._panningModel = this._panningModel),
          (this._loaderClass.context = this.context);
      }),
      (b._updateVolume = function () {
        var a = createjs.Sound._masterMute ? 0 : this._volume;
        a != this.gainNode.gain.value && (this.gainNode.gain.value = a);
      }),
      (createjs.WebAudioPlugin = createjs.promote(a, "AbstractPlugin"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      throw "HTMLAudioTagPool cannot be instantiated";
    }
    function b(a) {
      this._tags = [];
    }
    var c = a;
    (c._tags = {}),
      (c._tagPool = new b()),
      (c._tagUsed = {}),
      (c.get = function (a) {
        var b = c._tags[a];
        return (
          null == b
            ? ((b = c._tags[a] = c._tagPool.get()), (b.src = a))
            : c._tagUsed[a]
            ? ((b = c._tagPool.get()), (b.src = a))
            : (c._tagUsed[a] = !0),
          b
        );
      }),
      (c.set = function (a, b) {
        b == c._tags[a] ? (c._tagUsed[a] = !1) : c._tagPool.set(b);
      }),
      (c.remove = function (a) {
        var b = c._tags[a];
        return null == b
          ? !1
          : (c._tagPool.set(b), delete c._tags[a], delete c._tagUsed[a], !0);
      }),
      (c.getDuration = function (a) {
        var b = c._tags[a];
        return null != b && b.duration ? 1e3 * b.duration : 0;
      }),
      (createjs.HTMLAudioTagPool = a);
    var d = b.prototype;
    (d.constructor = b),
      (d.get = function () {
        var a;
        return (
          (a = 0 == this._tags.length ? this._createTag() : this._tags.pop()),
          null == a.parentNode && document.body.appendChild(a),
          a
        );
      }),
      (d.set = function (a) {
        var b = createjs.indexOf(this._tags, a);
        -1 == b && ((this._tags.src = null), this._tags.push(a));
      }),
      (d.toString = function () {
        return "[TagPool]";
      }),
      (d._createTag = function () {
        var a = document.createElement("audio");
        return (a.autoplay = !1), (a.preload = "none"), a;
      });
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c, d) {
      this.AbstractSoundInstance_constructor(a, b, c, d),
        (this._audioSpriteStopTime = null),
        (this._delayTimeoutId = null),
        (this._endedHandler = createjs.proxy(this._handleSoundComplete, this)),
        (this._readyHandler = createjs.proxy(this._handleTagReady, this)),
        (this._stalledHandler = createjs.proxy(this._playFailed, this)),
        (this._audioSpriteEndHandler = createjs.proxy(
          this._handleAudioSpriteLoop,
          this
        )),
        (this._loopHandler = createjs.proxy(this._handleSoundComplete, this)),
        c
          ? (this._audioSpriteStopTime = 0.001 * (b + c))
          : (this._duration = createjs.HTMLAudioTagPool.getDuration(this.src));
    }
    var b = createjs.extend(a, createjs.AbstractSoundInstance);
    (b.setMasterVolume = function (a) {
      this._updateVolume();
    }),
      (b.setMasterMute = function (a) {
        this._updateVolume();
      }),
      (b.toString = function () {
        return "[HTMLAudioSoundInstance]";
      }),
      (b._removeLooping = function () {
        null != this._playbackResource &&
          ((this._playbackResource.loop = !1),
          this._playbackResource.removeEventListener(
            createjs.HTMLAudioPlugin._AUDIO_SEEKED,
            this._loopHandler,
            !1
          ));
      }),
      (b._addLooping = function () {
        null == this._playbackResource ||
          this._audioSpriteStopTime ||
          (this._playbackResource.addEventListener(
            createjs.HTMLAudioPlugin._AUDIO_SEEKED,
            this._loopHandler,
            !1
          ),
          (this._playbackResource.loop = !0));
      }),
      (b._handleCleanUp = function () {
        var a = this._playbackResource;
        if (null != a) {
          a.pause(),
            (a.loop = !1),
            a.removeEventListener(
              createjs.HTMLAudioPlugin._AUDIO_ENDED,
              this._endedHandler,
              !1
            ),
            a.removeEventListener(
              createjs.HTMLAudioPlugin._AUDIO_READY,
              this._readyHandler,
              !1
            ),
            a.removeEventListener(
              createjs.HTMLAudioPlugin._AUDIO_STALLED,
              this._stalledHandler,
              !1
            ),
            a.removeEventListener(
              createjs.HTMLAudioPlugin._AUDIO_SEEKED,
              this._loopHandler,
              !1
            ),
            a.removeEventListener(
              createjs.HTMLAudioPlugin._TIME_UPDATE,
              this._audioSpriteEndHandler,
              !1
            );
          try {
            a.currentTime = this._startTime;
          } catch (b) {}
          createjs.HTMLAudioTagPool.set(this.src, a),
            (this._playbackResource = null);
        }
      }),
      (b._beginPlaying = function (a) {
        return (
          (this._playbackResource = createjs.HTMLAudioTagPool.get(this.src)),
          this.AbstractSoundInstance__beginPlaying(a)
        );
      }),
      (b._handleSoundReady = function (a) {
        if (4 !== this._playbackResource.readyState) {
          var b = this._playbackResource;
          return (
            b.addEventListener(
              createjs.HTMLAudioPlugin._AUDIO_READY,
              this._readyHandler,
              !1
            ),
            b.addEventListener(
              createjs.HTMLAudioPlugin._AUDIO_STALLED,
              this._stalledHandler,
              !1
            ),
            (b.preload = "auto"),
            void b.load()
          );
        }
        this._updateVolume(),
          (this._playbackResource.currentTime =
            0.001 * (this._startTime + this._position)),
          this._audioSpriteStopTime
            ? this._playbackResource.addEventListener(
                createjs.HTMLAudioPlugin._TIME_UPDATE,
                this._audioSpriteEndHandler,
                !1
              )
            : (this._playbackResource.addEventListener(
                createjs.HTMLAudioPlugin._AUDIO_ENDED,
                this._endedHandler,
                !1
              ),
              0 != this._loop &&
                (this._playbackResource.addEventListener(
                  createjs.HTMLAudioPlugin._AUDIO_SEEKED,
                  this._loopHandler,
                  !1
                ),
                (this._playbackResource.loop = !0))),
          this._playbackResource.play();
      }),
      (b._handleTagReady = function (a) {
        this._playbackResource.removeEventListener(
          createjs.HTMLAudioPlugin._AUDIO_READY,
          this._readyHandler,
          !1
        ),
          this._playbackResource.removeEventListener(
            createjs.HTMLAudioPlugin._AUDIO_STALLED,
            this._stalledHandler,
            !1
          ),
          this._handleSoundReady();
      }),
      (b._pause = function () {
        this._playbackResource.pause();
      }),
      (b._resume = function () {
        this._playbackResource.play();
      }),
      (b._updateVolume = function () {
        if (null != this._playbackResource) {
          var a =
            this._muted || createjs.Sound._masterMute
              ? 0
              : this._volume * createjs.Sound._masterVolume;
          a != this._playbackResource.volume &&
            (this._playbackResource.volume = a);
        }
      }),
      (b._calculateCurrentPosition = function () {
        return 1e3 * this._playbackResource.currentTime - this._startTime;
      }),
      (b._updatePosition = function () {
        this._playbackResource.removeEventListener(
          createjs.HTMLAudioPlugin._AUDIO_SEEKED,
          this._loopHandler,
          !1
        ),
          this._playbackResource.addEventListener(
            createjs.HTMLAudioPlugin._AUDIO_SEEKED,
            this._handleSetPositionSeek,
            !1
          );
        try {
          this._playbackResource.currentTime =
            0.001 * (this._position + this._startTime);
        } catch (a) {
          this._handleSetPositionSeek(null);
        }
      }),
      (b._handleSetPositionSeek = function (a) {
        null != this._playbackResource &&
          (this._playbackResource.removeEventListener(
            createjs.HTMLAudioPlugin._AUDIO_SEEKED,
            this._handleSetPositionSeek,
            !1
          ),
          this._playbackResource.addEventListener(
            createjs.HTMLAudioPlugin._AUDIO_SEEKED,
            this._loopHandler,
            !1
          ));
      }),
      (b._handleAudioSpriteLoop = function (a) {
        this._playbackResource.currentTime <= this._audioSpriteStopTime ||
          (this._playbackResource.pause(),
          0 == this._loop
            ? this._handleSoundComplete(null)
            : ((this._position = 0),
              this._loop--,
              (this._playbackResource.currentTime = 0.001 * this._startTime),
              this._paused || this._playbackResource.play(),
              this._sendEvent("loop")));
      }),
      (b._handleLoop = function (a) {
        0 == this._loop &&
          ((this._playbackResource.loop = !1),
          this._playbackResource.removeEventListener(
            createjs.HTMLAudioPlugin._AUDIO_SEEKED,
            this._loopHandler,
            !1
          ));
      }),
      (b._updateStartTime = function () {
        (this._audioSpriteStopTime =
          0.001 * (this._startTime + this._duration)),
          this.playState == createjs.Sound.PLAY_SUCCEEDED &&
            (this._playbackResource.removeEventListener(
              createjs.HTMLAudioPlugin._AUDIO_ENDED,
              this._endedHandler,
              !1
            ),
            this._playbackResource.addEventListener(
              createjs.HTMLAudioPlugin._TIME_UPDATE,
              this._audioSpriteEndHandler,
              !1
            ));
      }),
      (b._updateDuration = function () {
        (this._audioSpriteStopTime =
          0.001 * (this._startTime + this._duration)),
          this.playState == createjs.Sound.PLAY_SUCCEEDED &&
            (this._playbackResource.removeEventListener(
              createjs.HTMLAudioPlugin._AUDIO_ENDED,
              this._endedHandler,
              !1
            ),
            this._playbackResource.addEventListener(
              createjs.HTMLAudioPlugin._TIME_UPDATE,
              this._audioSpriteEndHandler,
              !1
            ));
      }),
      (b._setDurationFromSource = function () {
        (this._duration = createjs.HTMLAudioTagPool.getDuration(this.src)),
          (this._playbackResource = null);
      }),
      (createjs.HTMLAudioSoundInstance = createjs.promote(
        a,
        "AbstractSoundInstance"
      ));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      this.AbstractPlugin_constructor(),
        (this.defaultNumChannels = 2),
        (this._capabilities = c._capabilities),
        (this._loaderClass = createjs.SoundLoader),
        (this._soundInstanceClass = createjs.HTMLAudioSoundInstance);
    }
    var b = createjs.extend(a, createjs.AbstractPlugin),
      c = a;
    (c.MAX_INSTANCES = 30),
      (c._AUDIO_READY = "canplaythrough"),
      (c._AUDIO_ENDED = "ended"),
      (c._AUDIO_SEEKED = "seeked"),
      (c._AUDIO_STALLED = "stalled"),
      (c._TIME_UPDATE = "timeupdate"),
      (c._capabilities = null),
      (c.isSupported = function () {
        return c._generateCapabilities(), null != c._capabilities;
      }),
      (c._generateCapabilities = function () {
        if (null == c._capabilities) {
          var a = document.createElement("audio");
          if (null == a.canPlayType) return null;
          c._capabilities = { panning: !1, volume: !0, tracks: -1 };
          for (
            var b = createjs.Sound.SUPPORTED_EXTENSIONS,
              d = createjs.Sound.EXTENSION_MAP,
              e = 0,
              f = b.length;
            f > e;
            e++
          ) {
            var g = b[e],
              h = d[g] || g;
            c._capabilities[g] =
              ("no" != a.canPlayType("audio/" + g) &&
                "" != a.canPlayType("audio/" + g)) ||
              ("no" != a.canPlayType("audio/" + h) &&
                "" != a.canPlayType("audio/" + h));
          }
        }
      }),
      (b.register = function (a) {
        var b = createjs.HTMLAudioTagPool.get(a.src),
          c = this.AbstractPlugin_register(a);
        return c.setTag(b), c;
      }),
      (b.removeSound = function (a) {
        this.AbstractPlugin_removeSound(a), createjs.HTMLAudioTagPool.remove(a);
      }),
      (b.create = function (a, b, c) {
        var d = this.AbstractPlugin_create(a, b, c);
        return d.setPlaybackResource(null), d;
      }),
      (b.toString = function () {
        return "[HTMLAudioPlugin]";
      }),
      (b.setVolume = b.getVolume = b.setMute = null),
      (createjs.HTMLAudioPlugin = createjs.promote(a, "AbstractPlugin"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(b, c, d) {
      (this.ignoreGlobalPause = !1),
        (this.loop = !1),
        (this.duration = 0),
        (this.pluginData = d || {}),
        (this.target = b),
        (this.position = null),
        (this.passive = !1),
        (this._paused = !1),
        (this._curQueueProps = {}),
        (this._initQueueProps = {}),
        (this._steps = []),
        (this._actions = []),
        (this._prevPosition = 0),
        (this._stepPosition = 0),
        (this._prevPos = -1),
        (this._target = b),
        (this._useTicks = !1),
        (this._inited = !1),
        (this._registered = !1),
        c &&
          ((this._useTicks = c.useTicks),
          (this.ignoreGlobalPause = c.ignoreGlobalPause),
          (this.loop = c.loop),
          c.onChange && this.addEventListener("change", c.onChange),
          c.override && a.removeTweens(b)),
        c && c.paused
          ? (this._paused = !0)
          : createjs.Tween._register(this, !0),
        c && null != c.position && this.setPosition(c.position, a.NONE);
    }
    var b = createjs.extend(a, createjs.EventDispatcher);
    (a.NONE = 0),
      (a.LOOP = 1),
      (a.REVERSE = 2),
      (a.IGNORE = {}),
      (a._tweens = []),
      (a._plugins = {}),
      (a.get = function (b, c, d, e) {
        return e && a.removeTweens(b), new a(b, c, d);
      }),
      (a.tick = function (b, c) {
        for (var d = a._tweens.slice(), e = d.length - 1; e >= 0; e--) {
          var f = d[e];
          (c && !f.ignoreGlobalPause) ||
            f._paused ||
            f.tick(f._useTicks ? 1 : b);
        }
      }),
      (a.handleEvent = function (a) {
        "tick" == a.type && this.tick(a.delta, a.paused);
      }),
      (a.removeTweens = function (b) {
        if (b.tweenjs_count) {
          for (var c = a._tweens, d = c.length - 1; d >= 0; d--) {
            var e = c[d];
            e._target == b && ((e._paused = !0), c.splice(d, 1));
          }
          b.tweenjs_count = 0;
        }
      }),
      (a.removeAllTweens = function () {
        for (var b = a._tweens, c = 0, d = b.length; d > c; c++) {
          var e = b[c];
          (e._paused = !0), e.target && (e.target.tweenjs_count = 0);
        }
        b.length = 0;
      }),
      (a.hasActiveTweens = function (b) {
        return b
          ? null != b.tweenjs_count && !!b.tweenjs_count
          : a._tweens && !!a._tweens.length;
      }),
      (a.installPlugin = function (b, c) {
        var d = b.priority;
        null == d && (b.priority = d = 0);
        for (var e = 0, f = c.length, g = a._plugins; f > e; e++) {
          var h = c[e];
          if (g[h]) {
            for (
              var i = g[h], j = 0, k = i.length;
              k > j && !(d < i[j].priority);
              j++
            );
            g[h].splice(j, 0, b);
          } else g[h] = [b];
        }
      }),
      (a._register = function (b, c) {
        var d = b._target,
          e = a._tweens;
        if (c && !b._registered)
          d && (d.tweenjs_count = d.tweenjs_count ? d.tweenjs_count + 1 : 1),
            e.push(b),
            !a._inited &&
              createjs.Ticker &&
              (createjs.Ticker.addEventListener("tick", a), (a._inited = !0));
        else if (!c && b._registered) {
          d && d.tweenjs_count--;
          for (var f = e.length; f--; )
            if (e[f] == b) {
              e.splice(f, 1);
              break;
            }
        }
        b._registered = c;
      }),
      (b.wait = function (a, b) {
        if (null == a || 0 >= a) return this;
        var c = this._cloneProps(this._curQueueProps);
        return this._addStep({ d: a, p0: c, e: this._linearEase, p1: c, v: b });
      }),
      (b.to = function (a, b, c) {
        return (
          (isNaN(b) || 0 > b) && (b = 0),
          this._addStep({
            d: b || 0,
            p0: this._cloneProps(this._curQueueProps),
            e: c,
            p1: this._cloneProps(this._appendQueueProps(a)),
          })
        );
      }),
      (b.call = function (a, b, c) {
        return this._addAction({
          f: a,
          p: b ? b : [this],
          o: c ? c : this._target,
        });
      }),
      (b.set = function (a, b) {
        return this._addAction({
          f: this._set,
          o: this,
          p: [a, b ? b : this._target],
        });
      }),
      (b.play = function (a) {
        return a || (a = this), this.call(a.setPaused, [!1], a);
      }),
      (b.pause = function (a) {
        return a || (a = this), this.call(a.setPaused, [!0], a);
      }),
      (b.setPosition = function (a, b) {
        0 > a && (a = 0), null == b && (b = 1);
        var c = a,
          d = !1;
        if (
          (c >= this.duration &&
            (this.loop
              ? (c %= this.duration)
              : ((c = this.duration), (d = !0))),
          c == this._prevPos)
        )
          return d;
        var e = this._prevPos;
        if (
          ((this.position = this._prevPos = c),
          (this._prevPosition = a),
          this._target)
        )
          if (d) this._updateTargetProps(null, 1);
          else if (this._steps.length > 0) {
            for (
              var f = 0, g = this._steps.length;
              g > f && !(this._steps[f].t > c);
              f++
            );
            var h = this._steps[f - 1];
            this._updateTargetProps(h, (this._stepPosition = c - h.t) / h.d);
          }
        return (
          0 != b &&
            this._actions.length > 0 &&
            (this._useTicks
              ? this._runActions(c, c)
              : 1 == b && e > c
              ? (e != this.duration && this._runActions(e, this.duration),
                this._runActions(0, c, !0))
              : this._runActions(e, c)),
          d && this.setPaused(!0),
          this.dispatchEvent("change"),
          d
        );
      }),
      (b.tick = function (a) {
        this._paused || this.setPosition(this._prevPosition + a);
      }),
      (b.setPaused = function (b) {
        return this._paused === !!b
          ? this
          : ((this._paused = !!b), a._register(this, !b), this);
      }),
      (b.w = b.wait),
      (b.t = b.to),
      (b.c = b.call),
      (b.s = b.set),
      (b.toString = function () {
        return "[Tween]";
      }),
      (b.clone = function () {
        throw "Tween can not be cloned.";
      }),
      (b._updateTargetProps = function (b, c) {
        var d, e, f, g, h, i;
        if (b || 1 != c) {
          if (((this.passive = !!b.v), this.passive)) return;
          b.e && (c = b.e(c, 0, 1, 1)), (d = b.p0), (e = b.p1);
        } else (this.passive = !1), (d = e = this._curQueueProps);
        for (var j in this._initQueueProps) {
          null == (g = d[j]) && (d[j] = g = this._initQueueProps[j]),
            null == (h = e[j]) && (e[j] = h = g),
            (f =
              g == h || 0 == c || 1 == c || "number" != typeof g
                ? 1 == c
                  ? h
                  : g
                : g + (h - g) * c);
          var k = !1;
          if ((i = a._plugins[j]))
            for (var l = 0, m = i.length; m > l; l++) {
              var n = i[l].tween(this, j, f, d, e, c, !!b && d == e, !b);
              n == a.IGNORE ? (k = !0) : (f = n);
            }
          k || (this._target[j] = f);
        }
      }),
      (b._runActions = function (a, b, c) {
        var d = a,
          e = b,
          f = -1,
          g = this._actions.length,
          h = 1;
        for (
          a > b && ((d = b), (e = a), (f = g), (g = h = -1));
          (f += h) != g;

        ) {
          var i = this._actions[f],
            j = i.t;
          (j == e || (j > d && e > j) || (c && j == a)) && i.f.apply(i.o, i.p);
        }
      }),
      (b._appendQueueProps = function (b) {
        var c, d, e, f, g;
        for (var h in b)
          if (void 0 === this._initQueueProps[h]) {
            if (((d = this._target[h]), (c = a._plugins[h])))
              for (e = 0, f = c.length; f > e; e++) d = c[e].init(this, h, d);
            this._initQueueProps[h] = this._curQueueProps[h] =
              void 0 === d ? null : d;
          } else d = this._curQueueProps[h];
        for (var h in b) {
          if (((d = this._curQueueProps[h]), (c = a._plugins[h])))
            for (g = g || {}, e = 0, f = c.length; f > e; e++)
              c[e].step && c[e].step(this, h, d, b[h], g);
          this._curQueueProps[h] = b[h];
        }
        return g && this._appendQueueProps(g), this._curQueueProps;
      }),
      (b._cloneProps = function (a) {
        var b = {};
        for (var c in a) b[c] = a[c];
        return b;
      }),
      (b._addStep = function (a) {
        return (
          a.d > 0 &&
            (this._steps.push(a),
            (a.t = this.duration),
            (this.duration += a.d)),
          this
        );
      }),
      (b._addAction = function (a) {
        return (a.t = this.duration), this._actions.push(a), this;
      }),
      (b._set = function (a, b) {
        for (var c in a) b[c] = a[c];
      }),
      (createjs.Tween = createjs.promote(a, "EventDispatcher"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a(a, b, c) {
      this.EventDispatcher_constructor(),
        (this.ignoreGlobalPause = !1),
        (this.duration = 0),
        (this.loop = !1),
        (this.position = null),
        (this._paused = !1),
        (this._tweens = []),
        (this._labels = null),
        (this._labelList = null),
        (this._prevPosition = 0),
        (this._prevPos = -1),
        (this._useTicks = !1),
        (this._registered = !1),
        c &&
          ((this._useTicks = c.useTicks),
          (this.loop = c.loop),
          (this.ignoreGlobalPause = c.ignoreGlobalPause),
          c.onChange && this.addEventListener("change", c.onChange)),
        a && this.addTween.apply(this, a),
        this.setLabels(b),
        c && c.paused
          ? (this._paused = !0)
          : createjs.Tween._register(this, !0),
        c &&
          null != c.position &&
          this.setPosition(c.position, createjs.Tween.NONE);
    }
    var b = createjs.extend(a, createjs.EventDispatcher);
    (b.addTween = function (a) {
      var b = arguments.length;
      if (b > 1) {
        for (var c = 0; b > c; c++) this.addTween(arguments[c]);
        return arguments[0];
      }
      return 0 == b
        ? null
        : (this.removeTween(a),
          this._tweens.push(a),
          a.setPaused(!0),
          (a._paused = !1),
          (a._useTicks = this._useTicks),
          a.duration > this.duration && (this.duration = a.duration),
          this._prevPos >= 0 &&
            a.setPosition(this._prevPos, createjs.Tween.NONE),
          a);
    }),
      (b.removeTween = function (a) {
        var b = arguments.length;
        if (b > 1) {
          for (var c = !0, d = 0; b > d; d++)
            c = c && this.removeTween(arguments[d]);
          return c;
        }
        if (0 == b) return !1;
        for (var e = this._tweens, d = e.length; d--; )
          if (e[d] == a)
            return (
              e.splice(d, 1),
              a.duration >= this.duration && this.updateDuration(),
              !0
            );
        return !1;
      }),
      (b.addLabel = function (a, b) {
        this._labels[a] = b;
        var c = this._labelList;
        if (c) {
          for (var d = 0, e = c.length; e > d && !(b < c[d].position); d++);
          c.splice(d, 0, { label: a, position: b });
        }
      }),
      (b.setLabels = function (a) {
        this._labels = a ? a : {};
      }),
      (b.getLabels = function () {
        var a = this._labelList;
        if (!a) {
          a = this._labelList = [];
          var b = this._labels;
          for (var c in b) a.push({ label: c, position: b[c] });
          a.sort(function (a, b) {
            return a.position - b.position;
          });
        }
        return a;
      }),
      (b.getCurrentLabel = function () {
        var a = this.getLabels(),
          b = this.position,
          c = a.length;
        if (c) {
          for (var d = 0; c > d && !(b < a[d].position); d++);
          return 0 == d ? null : a[d - 1].label;
        }
        return null;
      }),
      (b.gotoAndPlay = function (a) {
        this.setPaused(!1), this._goto(a);
      }),
      (b.gotoAndStop = function (a) {
        this.setPaused(!0), this._goto(a);
      }),
      (b.setPosition = function (a, b) {
        var c = this._calcPosition(a),
          d = !this.loop && a >= this.duration;
        if (c == this._prevPos) return d;
        (this._prevPosition = a), (this.position = this._prevPos = c);
        for (var e = 0, f = this._tweens.length; f > e; e++)
          if ((this._tweens[e].setPosition(c, b), c != this._prevPos))
            return !1;
        return d && this.setPaused(!0), this.dispatchEvent("change"), d;
      }),
      (b.setPaused = function (a) {
        (this._paused = !!a), createjs.Tween._register(this, !a);
      }),
      (b.updateDuration = function () {
        this.duration = 0;
        for (var a = 0, b = this._tweens.length; b > a; a++) {
          var c = this._tweens[a];
          c.duration > this.duration && (this.duration = c.duration);
        }
      }),
      (b.tick = function (a) {
        this.setPosition(this._prevPosition + a);
      }),
      (b.resolve = function (a) {
        var b = Number(a);
        return isNaN(b) && (b = this._labels[a]), b;
      }),
      (b.toString = function () {
        return "[Timeline]";
      }),
      (b.clone = function () {
        throw "Timeline can not be cloned.";
      }),
      (b._goto = function (a) {
        var b = this.resolve(a);
        null != b && this.setPosition(b);
      }),
      (b._calcPosition = function (a) {
        return 0 > a
          ? 0
          : a < this.duration
          ? a
          : this.loop
          ? a % this.duration
          : this.duration;
      }),
      (createjs.Timeline = createjs.promote(a, "EventDispatcher"));
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      throw "Ease cannot be instantiated.";
    }
    (a.linear = function (a) {
      return a;
    }),
      (a.none = a.linear),
      (a.get = function (a) {
        return (
          -1 > a && (a = -1),
          a > 1 && (a = 1),
          function (b) {
            return 0 == a
              ? b
              : 0 > a
              ? b * (b * -a + 1 + a)
              : b * ((2 - b) * a + (1 - a));
          }
        );
      }),
      (a.getPowIn = function (a) {
        return function (b) {
          return Math.pow(b, a);
        };
      }),
      (a.getPowOut = function (a) {
        return function (b) {
          return 1 - Math.pow(1 - b, a);
        };
      }),
      (a.getPowInOut = function (a) {
        return function (b) {
          return (b *= 2) < 1
            ? 0.5 * Math.pow(b, a)
            : 1 - 0.5 * Math.abs(Math.pow(2 - b, a));
        };
      }),
      (a.quadIn = a.getPowIn(2)),
      (a.quadOut = a.getPowOut(2)),
      (a.quadInOut = a.getPowInOut(2)),
      (a.cubicIn = a.getPowIn(3)),
      (a.cubicOut = a.getPowOut(3)),
      (a.cubicInOut = a.getPowInOut(3)),
      (a.quartIn = a.getPowIn(4)),
      (a.quartOut = a.getPowOut(4)),
      (a.quartInOut = a.getPowInOut(4)),
      (a.quintIn = a.getPowIn(5)),
      (a.quintOut = a.getPowOut(5)),
      (a.quintInOut = a.getPowInOut(5)),
      (a.sineIn = function (a) {
        return 1 - Math.cos((a * Math.PI) / 2);
      }),
      (a.sineOut = function (a) {
        return Math.sin((a * Math.PI) / 2);
      }),
      (a.sineInOut = function (a) {
        return -0.5 * (Math.cos(Math.PI * a) - 1);
      }),
      (a.getBackIn = function (a) {
        return function (b) {
          return b * b * ((a + 1) * b - a);
        };
      }),
      (a.backIn = a.getBackIn(1.7)),
      (a.getBackOut = function (a) {
        return function (b) {
          return --b * b * ((a + 1) * b + a) + 1;
        };
      }),
      (a.backOut = a.getBackOut(1.7)),
      (a.getBackInOut = function (a) {
        return (
          (a *= 1.525),
          function (b) {
            return (b *= 2) < 1
              ? 0.5 * (b * b * ((a + 1) * b - a))
              : 0.5 * ((b -= 2) * b * ((a + 1) * b + a) + 2);
          }
        );
      }),
      (a.backInOut = a.getBackInOut(1.7)),
      (a.circIn = function (a) {
        return -(Math.sqrt(1 - a * a) - 1);
      }),
      (a.circOut = function (a) {
        return Math.sqrt(1 - --a * a);
      }),
      (a.circInOut = function (a) {
        return (a *= 2) < 1
          ? -0.5 * (Math.sqrt(1 - a * a) - 1)
          : 0.5 * (Math.sqrt(1 - (a -= 2) * a) + 1);
      }),
      (a.bounceIn = function (b) {
        return 1 - a.bounceOut(1 - b);
      }),
      (a.bounceOut = function (a) {
        return 1 / 2.75 > a
          ? 7.5625 * a * a
          : 2 / 2.75 > a
          ? 7.5625 * (a -= 1.5 / 2.75) * a + 0.75
          : 2.5 / 2.75 > a
          ? 7.5625 * (a -= 2.25 / 2.75) * a + 0.9375
          : 7.5625 * (a -= 2.625 / 2.75) * a + 0.984375;
      }),
      (a.bounceInOut = function (b) {
        return 0.5 > b
          ? 0.5 * a.bounceIn(2 * b)
          : 0.5 * a.bounceOut(2 * b - 1) + 0.5;
      }),
      (a.getElasticIn = function (a, b) {
        var c = 2 * Math.PI;
        return function (d) {
          if (0 == d || 1 == d) return d;
          var e = (b / c) * Math.asin(1 / a);
          return -(
            a *
            Math.pow(2, 10 * (d -= 1)) *
            Math.sin(((d - e) * c) / b)
          );
        };
      }),
      (a.elasticIn = a.getElasticIn(1, 0.3)),
      (a.getElasticOut = function (a, b) {
        var c = 2 * Math.PI;
        return function (d) {
          if (0 == d || 1 == d) return d;
          var e = (b / c) * Math.asin(1 / a);
          return a * Math.pow(2, -10 * d) * Math.sin(((d - e) * c) / b) + 1;
        };
      }),
      (a.elasticOut = a.getElasticOut(1, 0.3)),
      (a.getElasticInOut = function (a, b) {
        var c = 2 * Math.PI;
        return function (d) {
          var e = (b / c) * Math.asin(1 / a);
          return (d *= 2) < 1
            ? -0.5 *
                (a * Math.pow(2, 10 * (d -= 1)) * Math.sin(((d - e) * c) / b))
            : a *
                Math.pow(2, -10 * (d -= 1)) *
                Math.sin(((d - e) * c) / b) *
                0.5 +
                1;
        };
      }),
      (a.elasticInOut = a.getElasticInOut(1, 0.3 * 1.5)),
      (createjs.Ease = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    function a() {
      throw "MotionGuidePlugin cannot be instantiated.";
    }
    (a.priority = 0),
      a._rotOffS,
      a._rotOffE,
      a._rotNormS,
      a._rotNormE,
      (a.install = function () {
        return (
          createjs.Tween.installPlugin(a, ["guide", "x", "y", "rotation"]),
          createjs.Tween.IGNORE
        );
      }),
      (a.init = function (a, b, c) {
        var d = a.target;
        return (
          d.hasOwnProperty("x") || (d.x = 0),
          d.hasOwnProperty("y") || (d.y = 0),
          d.hasOwnProperty("rotation") || (d.rotation = 0),
          "rotation" == b && (a.__needsRot = !0),
          "guide" == b ? null : c
        );
      }),
      (a.step = function (b, c, d, e, f) {
        if (
          ("rotation" == c &&
            ((b.__rotGlobalS = d), (b.__rotGlobalE = e), a.testRotData(b, f)),
          "guide" != c)
        )
          return e;
        var g,
          h = e;
        h.hasOwnProperty("path") || (h.path = []);
        var i = h.path;
        if (
          (h.hasOwnProperty("end") || (h.end = 1),
          h.hasOwnProperty("start") ||
            (h.start =
              d && d.hasOwnProperty("end") && d.path === i ? d.end : 0),
          h.hasOwnProperty("_segments") && h._length)
        )
          return e;
        var j = i.length,
          k = 10;
        if (!(j >= 6 && (j - 2) % 4 == 0))
          throw "invalid 'path' data, please see documentation for valid paths";
        (h._segments = []), (h._length = 0);
        for (var l = 2; j > l; l += 4) {
          for (
            var m,
              n,
              o = i[l - 2],
              p = i[l - 1],
              q = i[l + 0],
              r = i[l + 1],
              s = i[l + 2],
              t = i[l + 3],
              u = o,
              v = p,
              w = 0,
              x = [],
              y = 1;
            k >= y;
            y++
          ) {
            var z = y / k,
              A = 1 - z;
            (m = A * A * o + 2 * A * z * q + z * z * s),
              (n = A * A * p + 2 * A * z * r + z * z * t),
              (w +=
                x[x.push(Math.sqrt((g = m - u) * g + (g = n - v) * g)) - 1]),
              (u = m),
              (v = n);
          }
          h._segments.push(w), h._segments.push(x), (h._length += w);
        }
        (g = h.orient), (h.orient = !0);
        var B = {};
        return (
          a.calc(h, h.start, B),
          (b.__rotPathS = Number(B.rotation.toFixed(5))),
          a.calc(h, h.end, B),
          (b.__rotPathE = Number(B.rotation.toFixed(5))),
          (h.orient = !1),
          a.calc(h, h.end, f),
          (h.orient = g),
          h.orient ? ((b.__guideData = h), a.testRotData(b, f), e) : e
        );
      }),
      (a.testRotData = function (a, b) {
        if (void 0 === a.__rotGlobalS || void 0 === a.__rotGlobalE) {
          if (a.__needsRot) return;
          void 0 !== a._curQueueProps.rotation
            ? (a.__rotGlobalS = a.__rotGlobalE = a._curQueueProps.rotation)
            : (a.__rotGlobalS =
                a.__rotGlobalE =
                b.rotation =
                  a.target.rotation || 0);
        }
        if (void 0 !== a.__guideData) {
          var c = a.__guideData,
            d = a.__rotGlobalE - a.__rotGlobalS,
            e = a.__rotPathE - a.__rotPathS,
            f = d - e;
          if ("auto" == c.orient) f > 180 ? (f -= 360) : -180 > f && (f += 360);
          else if ("cw" == c.orient) {
            for (; 0 > f; ) f += 360;
            0 == f && d > 0 && 180 != d && (f += 360);
          } else if ("ccw" == c.orient) {
            for (f = d - (e > 180 ? 360 - e : e); f > 0; ) f -= 360;
            0 == f && 0 > d && -180 != d && (f -= 360);
          }
          (c.rotDelta = f),
            (c.rotOffS = a.__rotGlobalS - a.__rotPathS),
            (a.__rotGlobalS =
              a.__rotGlobalE =
              a.__guideData =
              a.__needsRot =
                void 0);
        }
      }),
      (a.tween = function (b, c, d, e, f, g, h, i) {
        var j = f.guide;
        if (void 0 == j || j === e.guide) return d;
        if (j.lastRatio != g) {
          var k = (j.end - j.start) * (h ? j.end : g) + j.start;
          switch ((a.calc(j, k, b.target), j.orient)) {
            case "cw":
            case "ccw":
            case "auto":
              b.target.rotation += j.rotOffS + j.rotDelta * g;
              break;
            case "fixed":
            default:
              b.target.rotation += j.rotOffS;
          }
          j.lastRatio = g;
        }
        return "rotation" != c || (j.orient && "false" != j.orient)
          ? b.target[c]
          : d;
      }),
      (a.calc = function (a, b, c) {
        if (void 0 == a._segments)
          throw "Missing critical pre-calculated information, please file a bug";
        void 0 == c && (c = { x: 0, y: 0, rotation: 0 });
        for (
          var d = a._segments,
            e = a.path,
            f = a._length * b,
            g = d.length - 2,
            h = 0;
          f > d[h] && g > h;

        )
          (f -= d[h]), (h += 2);
        var i = d[h + 1],
          j = 0;
        for (g = i.length - 1; f > i[j] && g > j; ) (f -= i[j]), j++;
        var k = j / ++g + f / (g * i[j]);
        h = 2 * h + 2;
        var l = 1 - k;
        return (
          (c.x = l * l * e[h - 2] + 2 * l * k * e[h + 0] + k * k * e[h + 2]),
          (c.y = l * l * e[h - 1] + 2 * l * k * e[h + 1] + k * k * e[h + 3]),
          a.orient &&
            (c.rotation =
              57.2957795 *
              Math.atan2(
                (e[h + 1] - e[h - 1]) * l + (e[h + 3] - e[h + 1]) * k,
                (e[h + 0] - e[h - 2]) * l + (e[h + 2] - e[h + 0]) * k
              )),
          c
        );
      }),
      (createjs.MotionGuidePlugin = a);
  })(),
  (this.createjs = this.createjs || {}),
  (function () {
    "use strict";
    var a = (createjs.TweenJS = createjs.TweenJS || {});
    (a.version = "0.6.2"), (a.buildDate = "Thu, 26 Nov 2015 20:44:31 GMT");
  })();
